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,在管理页面添加问题时,会有三个选项出现。


 

Django 入门学习总结8-管理页面的生成_第1张图片

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

也可以修改为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/时,显示如下图所示。

Django 入门学习总结8-管理页面的生成_第2张图片

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

修改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"]

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

Django 入门学习总结8-管理页面的生成_第3张图片

当添加一行

search_fields = ["question_text"]

时,则会出现搜索页面。

Django 入门学习总结8-管理页面的生成_第4张图片

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

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

自定义模块

在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__)"

Django 入门学习总结8-管理页面的生成_第5张图片

你可能感兴趣的:(django,学习,数据库)