Django 프레임워크의 admin 고급 맞춤형 구성

3012 단어
지식점
  • 사용자 정의 Useradmin
  • 맞춤형 ModelAdmin
  • 간단한 소개
    참조 문서
    코드 주소:Spareibs의 Github
    실험 절차
    단순 테스트
    먼저 자신의 모형을 정의한다[models.py]
    from django.db import models
    
    # Create your models here.
    
    class Poem(models.Model):
        author = models.CharField(max_length=100)
        title = models.CharField(max_length=200)
        timestamp = models.DateField(auto_now_add=True, auto_now=False)
        updated = models.DateField(auto_now_add=False, auto_now=True)
    
    
        def __str__(self):
            return "%s" % self.title
    

    Poem의 모델을 모델에 등록합니다[admin.py]. 이렇게 하면 Pome의 내용을 삭제할 수 있습니다.
    from django.contrib import admin
    from .models import Poem
    
    admin.site.register(Poem)
    

    중국어 표시【settings】
    주의: 구글 브라우저는 안 되지만 Firefox 브라우저는 가능합니다
    MIDDLEWARE_CLASSES = [
        'django.middleware.locale.LocaleMiddleware',
    ]
    

    사용자 정의 사용자 정의 Useradmin
    from django.contrib.auth.admin import UserAdmin
    from django.contrib.auth.models import User
    
    class MyUserAdmin(UserAdmin):
        #           
        list_display = ('email', 'first_name', 'last_name', 'is_staff')
        #      
        list_filter = ('is_staff',)
        #      
        search_fields = ('last_name',)
    
    #    User    ,      MyUserAdmin  
    admin.site.unregister(User)
    admin.site.register(User, MyUserAdmin)
    

    맞춤형 Pome
    class PoemModelAdmin(admin.ModelAdmin):
        #           
        list_display = ['title', 'timestamp', 'author']
        #          
        list_display_links = ['author']
        #        ,     
        search_fields = ['title']
        #         (             )
        list_editable = ['title']
        #      
        list_filter = ['author']
        class Meta:
            model = Poem
    admin.site.register(Poem, PoemModelAdmin)
    

    템플릿 표시 사용자 정의
    사용자 정의 템플릿 추가【cahnge form.html】
    {% extends "admin/change_form.html" %}
    
    {% block form_top %}
        
        

    : !

    {% endblock %}

    admin에서 [admin.py] 사용
    class PoemModelAdmin(admin.ModelAdmin):
        #           
        list_display = ['title', 'timestamp', 'author']
        #          
        list_display_links = ['author']
        #        ,     
        search_fields = ['title']
        #         (             )
        list_editable = ['title']
        #      
        list_filter = ['author']
        
        #      
        change_form_template = 'change_form.html'
    
        class Meta:
            model = Poem
    admin.site.register(Poem, PoemModelAdmin)
    

    사용자 정의 가능한 템플릿, 원본 보기 [option.py]
        # Custom templates (designed to be over-ridden in subclasses)
        add_form_template = None
        change_form_template = None
        change_list_template = None
        delete_confirmation_template = None
        delete_selected_confirmation_template = None
        object_history_template = None
    

    좋은 웹페이지 즐겨찾기