Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在django中管理用户内容?_Python_Django - Fatal编程技术网

Python 如何在django中管理用户内容?

Python 如何在django中管理用户内容?,python,django,Python,Django,我想管理用户帖子。当有人创建新帖子时,它应该显示在admin上,而不是html上。如果内容是有效的,我想按下允许按钮,它将显示在html上的所有用户。我试图用谷歌搜索一些东西,但没有任何帮助。我想逻辑应该是这样的: 用户创建新帖子。 帖子显示在管理面板上。 管理员允许发布。 帖子以html格式显示。 它应该如何工作?代码中的注释 models.py: 通过Django shell等进行查询: managers.py附加筛选器,仅返回发布日期小于或等于当前日期的对象: class Publishe

我想管理用户帖子。当有人创建新帖子时,它应该显示在admin上,而不是html上。如果内容是有效的,我想按下允许按钮,它将显示在html上的所有用户。我试图用谷歌搜索一些东西,但没有任何帮助。我想逻辑应该是这样的:

用户创建新帖子。 帖子显示在管理面板上。 管理员允许发布。 帖子以html格式显示。 它应该如何工作?

代码中的注释

models.py:

通过Django shell等进行查询:

managers.py附加筛选器,仅返回发布日期小于或等于当前日期的对象:

class PublishedManager(models.Manager):

    def published(self, **kwargs):
        return self.filter(pub_date__lte=timezone.now(),
                           is_draft=False,
                           **kwargs).order_by('-pub_date')
views.py:

模板:

{% for post in post_list %}
  <h1>{{ post.title }}</h1>
  {{ post.content }}
{% endfor %}
如果您只需要此字段,并且您知道将来不需要任何其他内容(例如需要编辑),那么在您的模型中添加is_published字段在某种程度上是一个快速的解决方案。大多数情况下,这些需求会迅速增加,您会陷入复杂代码的恶性循环,这是不容易遵循的

是一个以干净、干燥的方式处理此问题的模块。可以找到一个很好的介绍

绝对避免

国家的布尔人

is_new
is_active
is_published
is_draft
is_deleted
is_paid
is_member
is_*
相互排斥的国家。。。有点有限,但状态的数量 随着每个布尔值的增加:

2 bools = 2^2 = 4 states
3 bools = 2^3 = 8 states
etc (2^N)
易碎,状态太多,无法检查


添加布尔字段是默认的错误模型。BooleanFielddefault=FalseYes,manager这是个好主意
{% for post in post_list %}
  <h1>{{ post.title }}</h1>
  {{ post.content }}
{% endfor %}
is_new
is_active
is_published
is_draft
is_deleted
is_paid
is_member
is_*
2 bools = 2^2 = 4 states
3 bools = 2^3 = 8 states
etc (2^N)