• Django 入门学习总结8-管理页面的生成


    修改polls/admin.py文件为:

    from django.contrib import admin
    from .models import Choice, Question

    class ChoiceInline(admin.StackedInline):
        model = Choice
        extra = 3

    class QuestionAdmin(admin.ModelAdmin):
        fieldsets = [
            (None, {"fields": ["question_text"]}),
            ("Date information", {"fields": ["pub_date"], "classes": ["collapse"]}),
        ]
        inlines = [ChoiceInline]

    admin.site.register(Question, QuestionAdmin)

    这时,再次输入管理员页面地址 http://127.0.0.1:8000/admin/polls,在管理页面添加问题时,会有三个选项出现。


     

    输入完信息后,主题和三个选项会一块保存到数据库中。

    也可以修改为class ChoiceInline(admin.TabularInline),将会以表格的方式显示三个选项。

    增加以下内容,则主题的内容将会以三列显示。

    class QuestionAdmin(admin.ModelAdmin):
            # ...
            list_display = ["question_text", "pub_date", "was_published_recently"]

    当跳转或输入网址http://127.0.0.1:8000/admin/polls/question/时,显示如下图所示。

    当点击每列的头部时,可以排序显示每列的信息。

    修改polls/models.py文件,可以对排序进行更详细的设置。

    from django.contrib import admin


        class Question(models.Model):
            # ...
            @admin.display(
                boolean=True,
                ordering="pub_date",
                description="Published recently?",
            )
            def was_published_recently(self):
                now = timezone.now()
                return now - datetime.timedelta(days=1) <= self.pub_date <= now

    编辑polls/admin.py文件,在QuestionAdmin最下边添加一行:

    list_filter = ["pub_date"]

    则页面的最右边有过滤条件。

    当添加一行

    search_fields = ["question_text"]

    时,则会出现搜索页面。

    上图显示的为搜索结果页面。

    当然,也可以对显示的页面进行分布显示。

    自定义模块

    在manage.py同一个位置,新建文件夹templates。

    打开mysite/settings.py文件,添加以下的内容(只修改了一行):

     TEMPLATES = [
            {
                "BACKEND": "django.template.backends.django.DjangoTemplates",
                "DIRS": [BASE_DIR / "templates"],
                "APP_DIRS": True,
                "OPTIONS": {
                    "context_processors": [
                        "django.template.context_processors.debug",
                        "django.template.context_processors.request",
                        "django.contrib.auth.context_processors.auth",
                        "django.contrib.messages.context_processors.messages",
                    ],
                },
            },
        ]

    配置信息 DIRS 用于当加载时,查找模板所在的位置。

    在templates中建立admin文件夹。

    我们可以从django/contrib/admin/templates将系统的管理页面admin/base_site.html复制到这个文件夹中。

    如果不知道系统管理页面在哪个位置,也可以输入以下命令进行查找:

    python -c "import django; print(django.__path__)"

  • 相关阅读:
    Monkey二次开发 -- Monkey jar包构建
    STM32寄存器总结
    C++ 智能指针深剖
    2022年最新湖北水利水电施工安全员考试题库及答案
    App移动端测试【10】Monkey自定义脚本案例
    Vue项目实战——实现一个任务清单(学以致用,两小时带你巩固和强化Vue知识点)
    给 spyter/all-spark-notebook 添加scala支持
    AI生成PPT工具——Gamma,结合GPT生成不错的效果
    ElasticSearch在linux上安装部署
    使用HTML CSS制作静态网站【中秋节】
  • 原文地址:https://blog.csdn.net/computerclass/article/details/134525112