Djangoの管理カスタムスタイルと機能

カスタム管理スタイルと機能

1ページには、中国を変更します

1.1言語が中国語に設定されて

settings.py

LANGUAGE_CODE = 'zh-hans'

結果を変更します

1.2アプリケーション管理は、中国に設定されています

アプリケーション/apps.py

from django.apps import AppConfig


class BbssConfig(AppConfig):
    name = 'bbs'
    # 添加下面这句
    verbose_name = 'BBS系统'

結果を変更します

1.3データベーステーブルは、中国に設定されています

アプリケーション/models.py

class Comment(models.Model):
    topic = models.ForeignKey(Topic, on_delete=models.CASCADE)
    comment_text = models.TextField(max_length=2000)
    author = models.ForeignKey(User, default=1, on_delete=models.CASCADE)
    picture = models.FileField(blank=True, null=True)  # 添加文件类型字段,并默认为空
    pub_date = models.DateTimeField(auto_now_add=True)

    def get_comment_text_md(self):
        """将markdown格式转化为html"""
        return mark_safe(markdown(self.comment_text))

    def __str__(self):
        return self.comment_text

    class Meta:
        verbose_name = '评论'  # 单数时显示内容
        verbose_name_plural = '评论'  # 复数时显示内容

以下の表は、デフォルトのデータベースは、中国のない複数形ながら、バックグラウンドでこのように、両方の形態が同じ名前に設定された複数の形態で示しています

結果を変更します

1.4データベースのテーブルのフィールド名が中国に変更します

アプリケーション/models.py

class Comment(models.Model):
    topic = models.ForeignKey(Topic, on_delete=models.CASCADE, verbose_name='话题')
    comment_text = models.TextField('评价内容', max_length=2000)
    author = models.ForeignKey(User, default=1, on_delete=models.CASCADE, verbose_name='用户')
    picture = models.FileField('图片', blank=True, null=True)  # 添加文件类型字段,并默认为空
    pub_date = models.DateTimeField('发布时间', auto_now_add=True)

    def get_comment_text_md(self):
        """将markdown格式转化为html"""
        return mark_safe(markdown(self.comment_text))

    def __str__(self):
        return self.comment_text

    class Meta:
        verbose_name = '评论'  # 单数时显示内容
        verbose_name_plural = '评论'  # 复数时显示内容

ただ、一般的なフィールドを追加すると、パラメータができる場所の名前が表示され、キーワードパラメータに対多の関係verbose_name位置パラメータの後ろに配置すると、主要パラメータ

結果を変更します

2背景のスタイルを変更します。

ジャンゴ・グラッペリ使用サードパーティ製アプリケーション修正するための管理者のスタイル
GitHubの:https://github.com/sehmaschine/django-grappelli

ドキュメント:https://django-grappelli.readthedocs.io/en/latest/quickstart.html

その他のツール:https://djangopackages.org/grids/g/admin-interface/

2.1インストール

pip install django-grappelli

2.2プロジェクトのインポート

settings.py

INSTALLED_APPS = [
    'accounts.apps.AccountsConfig',
    'polls.apps.PollsConfig',
    'bbs.apps.BbssConfig',
    'grappelli',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

2.3インポートURL

プロジェクト/ urls.py

urlpatterns = [
    path('grappelli', include('grappelli.urls')),
    path('admin/', admin.site.urls),
    path('', include('bbs.urls')),
    path('accounts/', include('accounts.urls')),
]

一つの場所での静的ファイルの2.4統一コレクション

settings.py追加

# 收集静态文件统一存放的根路径
STATIC_ROOT = os.path.join(BASE_DIR, 'static-files')

コマンドを実行します。

 python manage.py collectstatic

自動的に生成されました

サービスが再び見つかっ管理ページが変更されているが開始されます

2.5カスタムタイトル

settings.py追加

# 后台自定义标题
GRAPPELLI_ADMIN_TITLE = 'Z-BBS ADMIN'

ページを更新

2.6管理開いているタブ機能

アプリケーション/ admin.py

from django.contrib import admin

# Register your models here.
from .models import Topic, Comment


class TopicAdmin(admin.ModelAdmin):
    list_display = ('topic_text', 'author', 'pub_date')
    search_fields = ('topic_text', 'author')
    list_editable = ('author',)
    list_per_page = 10


class CommentAdmin(admin.ModelAdmin):
    list_display = ( 'comment_text', 'author', 'pub_date', 'topic')
    search_fields = ('comment_text', 'author')
    list_editable = ('author',)
    list_per_page = 10

2.7管理者は、フィルタ機能を開きます

アプリケーション/ admin.py

class TopicAdmin(admin.ModelAdmin):
    list_display = ('topic_text', 'author', 'pub_date')
    list_filter = ('topic_text', 'author', 'pub_date')
    search_fields = ('topic_text',)
    list_editable = ('author',)
    list_per_page = 10


class CommentAdmin(admin.ModelAdmin):
    list_display = ( 'comment_text', 'author', 'pub_date', 'topic')
    list_filter = ('comment_text', 'author', 'pub_date', 'topic')
    search_fields = ('comment_text',)
    list_editable = ('author',)
    list_per_page = 10

私はリフレッシュページ(CTRL +シフト+ r)を力を入れた後覚えて、JSとCSSのコードをリロード

おすすめ

転載: www.cnblogs.com/izbw/p/11129895.html