- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在夹层中实现每篇博文有多个作者的可能性?
在我的特定情况下,我的博客文章将由多个人撰写。
==========================
@光击
感谢您的答复和电子邮件。我在 STDBY 上遇到了这个问题,因为我有其他更紧迫的事情需要在我的应用程序中处理。
我已经尝试过现场注入(inject)来定制其他问题,它们工作正常。
关于我问题中的问题;我确实尝试过使用 M2M 字段进行字段注入(inject),但它没有用。我没有收到错误,但它没有工作,至少没有像预期的那样工作,所以我决定处理其他问题,然后再回到这个问题上。顺便一提;我只进行了一次现场注入(inject),所以甚至可能是我在某处打字错误,绝对没有调试或重新考虑,因为我必须继续前进。
以下内容可能看起来 OOT,但请稍等!
好消息是,除其他事项外,我的应用程序还需要一些相当基本的工作流控制。我找到了 THIS SOLUTION开箱即用。是的!
我是从 Mezzanine Users Group 的一篇文章中了解到这个应用程序的我知道我在某个地方有哪个链接,但在我需要时永远找不到。请寻找它并继续阅读,因为它非常令人大开眼界。你还会了解到 Reny 给它起的名字确实是错误的,但我理解他,因为我也不会说英语,有时,当你翻译时很难想出正确的名字。 Reny 似乎是意大利人(只是一个疯狂的猜测!)而我是讲西类牙语的。我(现在)知道得更多,但“编辑器”可能是我会使用的名字。
同样,我还没有时间回到这个问题上,但是:
只是我的两分钱,但我希望在接下来的 2 周内回到这个问题并且(希望)记得回到这里
尽管如此,在尝试其他任何事情之前,我仍会再次深入研究此讨论。
非常感谢!!
最佳答案
不幸的是,没有办法用 Mezzanine 开箱即用地做到这一点。如果您查看带有 Mezzanine Blog app 的 BlogPost 模型类,您将看到以下内容:
class BlogPost(Displayable, Ownable, RichText, AdminThumbMixin):
事实证明,Ownable 的子类化是这里的重要因素。从 Blog 应用程序的 models.py 文件的第 6 行,我们知道 Ownable 类是从 Mezzanine 的核心应用程序导入的:
class Ownable(models.Model):
"""
Abstract model that provides ownership of an object for a user.
"""
user = models.ForeignKey(user_model_name, verbose_name=_("Author"),
related_name="%(class)ss")
class Meta:
abstract = True
def is_editable(self, request):
"""
Restrict in-line editing to the objects's owner and superusers.
"""
return request.user.is_superuser or request.user.id == self.user_id
由于Ownable 定义了ForeignKey 关系,因此可以有多个Ownable 对象与单个User 对象关联,但多个User 对象不能与单个Ownable 对象关联。由于 BlogPost 的作者是以这种方式定义的,因此每篇博文只能有一位作者。
为了允许每个博客帖子有多个作者,您需要创建一个多对多 (M2M) 字段,以便多个用户对象可以与单个 BlogPost 对象相关联。要实现这一点,不涉及更改 Mezzanine 源代码的最佳选择是通过子类化 BlogPost 创建自定义博客模型:
from django.db import models
from mezzanine.utils.models import get_user_model_name
from mezzanine.blog.models import BlogPost
user_model_name = get_user_model_name()
class CollaborativeBlogPost(BlogPost):
"""
Custom model that subclasses Mezzanine's BlogPost to allow multiple authors
"""
authors = models.ManyToManyField(user_model_name)
def is_editable(self, request):
"""
Customize is_editable method originally defined in Mezzanine's
Ownable class to allow editing by all users
"""
return request.user.is_superuser or
request.user.id in self.authors.all().values_list('id', flat=True)
您还需要将新的协作博客文章添加到您的管理员。使用来自 Mezzanine's field injection documentation 的一些指针(我最初想建议,但在使用 ManyToManyFields 创建南向迁移时存在一些问题),您可以复制基本的 BlogPost 管理员并添加作者字段:
from copy import deepcopy
from django.contrib import admin
from mezzanine.blog.admin import BlogPostAdmin
from mezzanine.blog.models import BlogPost
from .models import CollaborativeBlogPost
blog_fieldsets = deepcopy(BlogPostAdmin.fieldsets)
blog_fieldsets[0][1]["fields"].insert(-2, "authors")
class MyBlogPostAdmin(BlogPostAdmin):
fieldsets = blog_fieldsets
admin.site.register(CollaborativeBlogPost, MyBlogPostAdmin)
根据您的需要,您可能需要添加更多管理逻辑,但希望这能让您入门。
关于python - 夹层中的每个帖子有多个作者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19354376/
我想做的是让 JTextPane 在 JPanel 中占用尽可能多的空间。对于我使用的 UpdateInfoPanel: public class UpdateInfoPanel extends JP
我在 JPanel 中有一个 JTextArea,我想将其与 JScrollPane 一起使用。我正在使用 GridBagLayout。当我运行它时,框架似乎为 JScrollPane 腾出了空间,但
我想在 xcode 中实现以下功能。 我有一个 View Controller 。在这个 UIViewController 中,我有一个 UITabBar。它们下面是一个 UIView。将 UITab
有谁知道Firebird 2.5有没有类似于SQL中“STUFF”函数的功能? 我有一个包含父用户记录的表,另一个表包含与父相关的子用户记录。我希望能够提取用户拥有的“ROLES”的逗号分隔字符串,而
我想使用 JSON 作为 mirth channel 的输入和输出,例如详细信息保存在数据库中或创建 HL7 消息。 简而言之,输入为 JSON 解析它并输出为任何格式。 最佳答案 var objec
通常我会使用 R 并执行 merge.by,但这个文件似乎太大了,部门中的任何一台计算机都无法处理它! (任何从事遗传学工作的人的附加信息)本质上,插补似乎删除了 snp ID 的 rs 数字,我只剩
我有一个以前可能被问过的问题,但我很难找到正确的描述。我希望有人能帮助我。 在下面的代码中,我设置了varprice,我想添加javascript变量accu_id以通过rails在我的数据库中查找记
我有一个简单的 SVG 文件,在 Firefox 中可以正常查看 - 它的一些包装文本使用 foreignObject 包含一些 HTML - 文本包装在 div 中:
所以我正在为学校编写一个 Ruby 程序,如果某个值是 1 或 3,则将 bool 值更改为 true,如果是 0 或 2,则更改为 false。由于我有 Java 背景,所以我认为这段代码应该有效:
我做了什么: 我在这些账户之间创建了 VPC 对等连接 互联网网关也连接到每个 VPC 还配置了路由表(以允许来自双方的流量) 情况1: 当这两个 VPC 在同一个账户中时,我成功测试了从另一个 La
我有一个名为 contacts 的表: user_id contact_id 10294 10295 10294 10293 10293 10294 102
我正在使用 Magento 中的新模板。为避免重复代码,我想为每个产品预览使用相同的子模板。 特别是我做了这样一个展示: $products = Mage::getModel('catalog/pro
“for”是否总是检查协议(protocol)中定义的每个函数中第一个参数的类型? 编辑(改写): 当协议(protocol)方法只有一个参数时,根据该单个参数的类型(直接或任意)找到实现。当协议(p
我想从我的 PHP 代码中调用 JavaScript 函数。我通过使用以下方法实现了这一点: echo ' drawChart($id); '; 这工作正常,但我想从我的 PHP 代码中获取数据,我使
这个问题已经有答案了: Event binding on dynamically created elements? (23 个回答) 已关闭 5 年前。 我有一个动态表单,我想在其中附加一些其他 h
我正在尝试找到一种解决方案,以在 componentDidMount 中的映射项上使用 setState。 我正在使用 GraphQL连同 Gatsby返回许多 data 项目,但要求在特定的 pat
我在 ScrollView 中有一个 View 。只要用户按住该 View ,我想每 80 毫秒调用一次方法。这是我已经实现的: final Runnable vibrate = new Runnab
我用 jni 开发了一个 android 应用程序。我在 GetStringUTFChars 的 dvmDecodeIndirectRef 中得到了一个 dvmabort。我只中止了一次。 为什么会这
当我到达我的 Activity 时,我调用 FragmentPagerAdapter 来处理我的不同选项卡。在我的一个选项卡中,我想显示一个 RecyclerView,但他从未出现过,有了断点,我看到
当我按下 Activity 中的按钮时,会弹出一个 DialogFragment。在对话框 fragment 中,有一个看起来像普通 ListView 的 RecyclerView。 我想要的行为是当
我是一名优秀的程序员,十分优秀!