【问题标题】:How can admin post content visible by other users in django 1.8?管理员如何在 django 1.8 中发布其他用户可见的内容?
【发布时间】:2016-09-15 15:53:25
【问题描述】:

首先,我是 django 新手,这是我的第一个项目,所以我的知识很少。

我正在使用 django 1.8,并且我已经制作了一个基本网站。 我的问题如下: 您知道当您访问网站并且内容由管理员更新时如何? (如果您是大学生,则新闻、日程安排或截止日期提醒) 有没有办法让管理员只使用一个界面而不接触代码?我的意思是,假设管理员对 django 一无所知,并且有一个网站,他想在其中上传所有用户都可以看到的“新闻”或“公告”,或者他可以编辑/删除旧帖子......

如果您可以通过给我有用的链接到 github 上的文档、教程或现有项目来指导我了解它是如何工作的,我会很感激。 感谢您的帮助。

【问题讨论】:

  • 您是否尝试过进行基本的管理站点设置? docs.djangoproject.com/en/1.10/intro/tutorial02/…docs.djangoproject.com/en/1.10/ref/contrib/admin 如果您通常这样做,管理员可以登录到管理界面,例如 127.0.0.1:8000/admin 并无需编码即可编辑内容
  • 我已经尝试过了,据我所知,管理界面允许管理员查看例如订阅的人......这不是我想要的。假设 127.0.0.1:8000 允许我访问主页,我希望管理员能够在主页上发布内容供其他用户查看(在主页 127.0.0.1:8000 上)。
  • 您是指内容管理系统吗?我知道至少有两个使用 django:wagtaildjango-cms,但我没有使用它们的经验,更不用说设置它们了。

标签: python django model-view-controller admin django-1.8


【解决方案1】:

您可以使用 Django Admin 通过零编程的 Web 界面创建/编辑模型。

当然,要实现这一点,您必须将可编辑内容保留在模型中,而不是在模板中硬编码。

假设我们的网站是一个小型博客,我们的帖子是以下模型的实例:

class Post(models.Model):
    title = models.CharField(max_length=50)
    content = models.TextField()

你在主页上显示它们是这样的:

<ul>
{% for post in posts %}
    <li>
        <p>{{ post.content }}</p>
    </li>
{% endfor %}
</ul>

&lt;app&gt;/admin.py 中,您需要将模型注册到管理员中,以便管理员界面知道模型并显示它:

from .models import Post # import your model

admin.site.register(Post)

现在您应该能够从管理界面轻松创建和修改Post 的实例,它们应该会自动出现在主页上。

我建议查看official Django tutorialDjango Girls blog tutorial,它们详细说明了如何使用管理员更新面向客户的网页上显示的内容。

【讨论】:

    猜你喜欢
    • 2016-01-16
    • 2014-01-06
    • 2011-09-12
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    相关资源
    最近更新 更多