【问题标题】:How to edit dict in views.py from django admin如何从 django admin 编辑 views.py 中的 dict
【发布时间】:2016-09-02 13:15:42
【问题描述】:

我正在开发一个网站以更好地学习 Django 框架。我目前已经设置了模板文件的视图和链接,以在主页上显示内容。在我的 views.py 文件中,我添加了一个字典,当它被渲染时,它会显示 index.html 页面中每个键的字典值:

views.py:

def Index(request):
    projectmessage = {
    "projectMessage":"This is text from a dictionary value. written in views.py",
    "projectTitle":"Title from dict",
    "projectText": "Text from dict",
    }
return render(request,'wbdev/index.html', context=projectmessage)

index.html 中的相关行:

 <h3>{{ projectTitle }}</h3>
 <p>{{ projectMessage }}</p>

我想知道这是否可以在 django 管理页面上显示,以便我可以直接从 GUI 更改 dict 文本。这是否可以完成,或者我是否可以从某种意义上说这不是 django 管理页面的意图?根据我的红色 django admin 解析 models.py 文件以设置文本字段和按钮。我已经学习了官方 django 教程和一些“如何使用 django 探戈”一书,但我无法理解如何继续获得我想要的功能。

对于这个菜鸟问题,我很抱歉。我会回到我的书上,我可能会理解这是如何工作的。如果有人可以帮助我解释如何实现这一目标,我将不胜感激。

谢谢。

【问题讨论】:

    标签: python django django-admin


    【解决方案1】:

    您可能想要为项目创建一个模型,以便可以将项目保存到数据库并轻松地显示在管理中。

    models.py 中包含以下内容:

    class Project(models.Model):
        message = models.CharField(max_length=20)
        title = models.CharField(max_length=20)
        text = models.CharField(max_length=20)
    

    在 admin.py 中,如果你注册了模型,它应该会出现在管理员中

    from dajngo.contrib import admin
    from .models import Project
    
    admin.site.register(Project)
    

    最后,对于views.py 中的索引,您需要在将相关项目对象渲染到模板之前查询数据库中的问题

    def index(request):
        projects = Project.objects.all()
        return render(request,'wbdev/index.html', context={'projects': projects})
    

    在您的模板中,您可以遍历数据库中的所有项目,例如

    {% for project in projects %}
        {{ project.message }}
        {{ project.title }}
        {{ project.text }}
    {% endfor %}
    

    【讨论】:

    • 非常感谢。它不仅以我想要的方式工作,而且我还了解了更多关于 Django 的知识。再次感谢您!
    • 乐于助人,继续努力!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2015-05-21
    • 2010-12-20
    相关资源
    最近更新 更多