django后臺設(shè)置

最近在更新之前用djang建的網(wǎng)站,淌過了不少坑,在這里記錄下。

第一篇更新,主要關(guān)于django設(shè)置和后臺設(shè)置

新建django項目

命令行中輸入

django-admin startproject test
cd test

進入test目錄,文件結(jié)構(gòu)如下


新建app應(yīng)用

命令行中輸入

python manage.py startapp test1
python manage.py startapp test2

建2個應(yīng)用(對比用),應(yīng)用建立后文件結(jié)構(gòu)如下

請忽略migrations。。。

settings中設(shè)置

創(chuàng)建應(yīng)用后要將應(yīng)用加入testout/settings.py,讓django知道有這兩個應(yīng)用

Paste_Image.png

settings中這部分可以按需要修改,LANGUAGE_CODE 將后臺語言改成中文簡體,TIME_ZONE 將使用時區(qū)改成東8區(qū)(就是北京時間),如果用不著時區(qū)可以將USE_TZ 設(shè)成False



應(yīng)用中建立模型

test1的models.py文件中建立如下模型

from django.db import models

class Category(models.Model):
    name=models.CharField(max_length=100)

    def __str__(self):  
        return self.name

class Tag(models.Model):
    name=models.CharField(max_length=100)

class BlogPost(models.Model):
    title=models.CharField(max_length=200,verbose_name='標題')
    body = models.TextField()
    created_time = models.DateTimeField()
    category = models.ForeignKey(Category,blank=True)
    tag = models.ManyToManyField(Tag,blank=True)

    class Meta:
        verbose_name='文章'
        verbose_name_plural='文章'

test2的models.py中建立如下模型

from django.db import models

class Category(models.Model):
    name=models.CharField(max_length=100)

將模型管理加入后臺

在test1中的admin.py將test1中models加入后臺

from django.contrib import admin
from .models import BlogPost,Category,Tag

@admin.register(BlogPost)
class PostAdmin(admin.ModelAdmin):
    list_display = ['title', 'created_time','category',]
    list_display_links = ('title', 'category')

    search_fields = ('title',)
    date_hierarchy = 'created_time'
    list_filter = ('category',)

    ordering = ('created_time', 'title')
    list_per_page = 20

    fields = (('title','category'),'body','created_time','tag')

    filter_horizontal = ('tag',)

class CatAdmin(admin.ModelAdmin):
    list_display = ['name']

admin.site.register(Category,CatAdmin) #效果和上面@admin.register(BlogPost)一樣
admin.site.register(Tag)

在test2中的admin.py將test2中models.py加入后臺

from django.contrib import admin
from .models import Category

admin.site.register(Category)

更改后臺中應(yīng)用顯示名稱

test1中apps.py更改如下

from django.apps import AppConfig

class AdmintestConfig(AppConfig):
    name = 'test1'
    verbose_name='測試1'

test1中init.py加入以下設(shè)置

default_app_config= 'test1.apps.AdmintestConfig'

設(shè)置效果解釋

進入后臺后顯示



紅色圈出是應(yīng)用名,通過在apps.py中加入verbose_name 改變了后臺顯示應(yīng)用的名稱。
藍色圈出的應(yīng)用中的模型名稱,通過在models.py在定義模型時定義Meta類更改了在后臺顯示的模型的名稱。

    class Meta:
        verbose_name='文章'
        verbose_name_plural='文章'
在<測試1>中的categorys,tags,文章中增加幾個數(shù)據(jù)。

進入<測試1>的categorys,tags,會看下一下對比。



紅色圈出部分,因為category模型中的

 def __str__(self):  
        return self.name

后臺顯示時會顯示category模型的name字段,而tag中是顯示object。

進入<測試1>的文章


在創(chuàng)建模型時有如下設(shè)置

class BlogPost(models.Model):
    title=models.CharField(max_length=200,verbose_name='標題') 
#將title字段在后臺顯示名稱改為'標題',如藍色圈出位置所示

在將模型加入admins.py時有如下設(shè)置

class PostAdmin(admin.ModelAdmin):
    list_display = ['title', 'created_time','category',] # 設(shè)置顯示字段,如紅色框中顯示
    list_display_links = ('title', 'category') #設(shè)置顯示字段鏈接,如藍色框中顯示

    search_fields = ('title',) #設(shè)置可以搜索字段,在位置①
    date_hierarchy = 'created_time' #設(shè)置可通過時間篩選,在位置③
    list_filter = ('category',) #設(shè)置可用過category字段篩選,在位置②

    ordering = ('created_time', 'title') #設(shè)置默認按'created_time', 'title'排序,如箭頭所示
    list_per_page = 20 #設(shè)置每頁顯示數(shù)量

進入第一篇文章,

class PostAdmin(admin.ModelAdmin):
    fields = (('title','category'),'body','created_time','tag') 
#設(shè)置可以在后臺更改的字段,格式為列表或元組,其中的元組中的元組('title','category')可將title和category調(diào)整到同一行,如紅色框所示
    filter_horizontal = ('tag',)
# 模型中的manytomanyfield可以設(shè)置filter_horizontal,后臺顯示更友好,如藍色框所示
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容