Python Django 백 스테이지 관리 후 데스크 톱 모델 속성 상세 설명

18.Django 배경 모델 속성 편
이전 프로젝트 에서 코드 인 코딩 을 계속 하려 면 먼저createsuperuser명령 을 통 해 만 든 관리자 계 정 을 기억 해 야 합 니 다.잊 어 버 리 면 다시 만들어 야 합 니 다.
이 블 로그 와 관련 된 코드 는 모두admin.py파일 에 있 습 니 다.이 글 을 처음 열 면 본 논문 의 끝 에 나 온 디 렉 터 리 대강 을 살 펴 보고 다시 공부 할 수 있 습 니 다.
학습 에 편리 하도록 미리models.py에 클래스 를 추가 합 니 다.코드 는 다음 과 같 습 니 다.

from django.db import models

class MyCenter(models.Model):
    pass
18.1 admin 에 모델 등록
Django 가models.py파일 의 클래스 를 관리 할 수 있 도록 모델 을 먼저 등록 해 야 합 니 다.
앞에서 언급 한MyCenter모델 을 등록 합 니 다.이때admin.py파일 의 코드 는 다음 과 같 습 니 다.

from django.contrib import admin
from .models import MyCenter

class MyCenterAdmin(admin.ModelAdmin):
    pass

admin.site.register(MyCenter, MyCenterAdmin)
등록 에 성공 한 결 과 는 백 스테이지 페이지 에서 모델 에 대한 조작 입 구 를 볼 수 있 습 니 다.
Python Django 后台管理也要好好学之后台模型属性
기타 등록 방식
상기MyCenterAdmin는 어떠한 기능 도 실현 하지 못 했 기 때문에 생략 할 수 있다.수정 코드 는 다음 과 같 습 니 다:

from django.contrib import admin
from .models import MyCenter

admin.site.register(MyCenter)
장식 기 를 사용 해 같은 효 과 를 낼 수 있다.

from django.contrib import admin
from .models import MyCenter


@admin.register(MyCenter)
class MyCenterAdmin(admin.ModelAdmin):
    pass
18.2 Model.admin 클래스 가 제공 하 는 속성
위의 글 에서 보 았 습 니 다.admin.py파일 의 기본 계승Model.Admin은 이 를 계승 한 이상 다음 에 파악 해 야 할 것 은 바로 이 가 우리 에 게 제공 하 는 속성 내용 입 니 다.
작업 이 시작 되 기 전에 우 리 는 먼저admin.py파일 의 코드 를 수정 하여 주로 페이지 전시 에 편리 하도록 한다.
models.py

from django.db import models
from django.contrib.auth.models import User

class Customer(models.Model):
    #     
    _id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=20, verbose_name="   ")
    mobile = models.IntegerField(default=0, verbose_name="    ")


class Score(models.Model):
    #     
    _id = models.AutoField(primary_key=True)
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
    score = models.IntegerField(default=0, verbose_name="  ")
admin.py

from django.contrib import admin
from .models import Customer


@admin.register(Customer)
class CustomerAdmin(admin.ModelAdmin):
    pass
상술 한 내용 을 완전 하 게 보충 한 후에 백 스테이지 에서 데 이 터 를 유지 할 수 있다.
Python Django 后台管理也要好好学之后台模型属性
다음은 첫 번 째 속성 을 배 워 야 합 니 다:date_hierarchy.
18.2.1 date_hierarchy
이 속성 은 시간 열 을 필터 가능 한 필드 로 변환 하 는 데 사 용 됩 니 다.이 작업 을 완성 하려 면models.py에 좋 은models.DateField형식의 필드 를 추가 해 야 합 니 다.

create_time = models.DateField(default=timezone.now)
모델 이 바 뀌 었 을 때 다음 명령 으로 동기 화 를 해 야 합 니 다.

python manage.py makemigrations scoring
python manage.py migrate
모델 변화 이전 후admin.py에서 배치 할 수 있 습 니 다.

from django.contrib import admin
from .models import Customer

@admin.register(Customer)
class CustomerAdmin(admin.ModelAdmin):
    date_hierarchy = "create_time"
이 때 애플 리 케 이 션 을 실행 하면 customer 페이지 에서 최종 결 과 를 볼 수 있 습 니 다.
Python Django 后台管理也要好好学之后台模型属性
18.2.2 actions_on_top/actions_on_bottom
동작 바 의 표시 위 치 를 제어 합 니 다.동작 은 바로 조작 입 니 다.
Python Django 后台管理也要好好学之后台模型属性
수정admin.py파일 코드 는 다음 과 같 습 니 다.동작 바 의 전시 위 치 를 제어 할 수 있 습 니 다.

@admin.register(Customer)
class CustomerAdmin(admin.ModelAdmin):
    date_hierarchy = "create_time"
    # actions_on_top = False
    actions_on_bottom = True
18.2.3 actions_selection_counter
동작 막대 뒤의 계수 가 보 여 질 지 여부 입 니 다.False 로 설정 하면 뒤의 숫자 가 사라 집 니 다.
Python Django 后台管理也要好好学之后台模型属性
18.2.4 list_display
이 속성 은 모델 에 표 시 된 필드 를 제어 할 수 있 습 니 다.코드 는 다음 과 같은 내용 으로 변경 되 었 습 니 다.

@admin.register(Customer)
class CustomerAdmin(admin.ModelAdmin):
    date_hierarchy = "create_time"
    actions_on_top = False
    actions_on_bottom = True
    list_display = ["_id", "name", "mobile", "create_time"]
최종 적 으로 나타 난 데 이 터 는 다음 과 같다.
Python Django 后台管理也要好好学之后台模型属性 list_display필드 에 함 수 를 삽입 할 수 있 습 니 다.

def warp_name(obj):
    return f"   :{obj.name}"

@admin.register(Customer)
class CustomerAdmin(admin.ModelAdmin):
    date_hierarchy = "create_time"
    actions_on_top = False
    actions_on_bottom = True

	# warp_name     ,          
    list_display = ["_id", warp_name, "mobile", "create_time"]
    warp_name.short_description = "      "
상기 코드 의warp_name함 수 를CustomerAdmin내부 에 배치 할 수도 있다.

@admin.register(Customer)
class CustomerAdmin(admin.ModelAdmin):
    date_hierarchy = "create_time"
    actions_on_top = False
    actions_on_bottom = True

    def warp_name(self, obj):
        return f"   :{obj.name}"

    list_display = ["_id", 'warp_name', "mobile", "create_time"]

    warp_name.short_description = "     "
이때 가장 큰 차이 점 은list_display목록 에서 사용자 정의 함수 가 문자열 형식 이라는 것 이다.
기본 적 인 상황 에서list_display의 첫 번 째 항목 은 하이퍼링크 입 니 다.클릭 하면 페이지 를 편집 할 수 있 고 list 를 통 해display_링크 를 설정 합 니 다.
  • list_display_links:None 에 링크 를 표시 하지 않 음 을 표시 합 니 다.
  • :하이퍼링크 가 필요 한 것 을 표시 합 니 다.
  • 18.2.5 empty_value_display
    빈 데 이 터 를 보 여 주 는 방식 입 니 다.기본 빈 데 이 터 는--입 니 다.이 속성 을 사용 하면 사용자 정의 설정 을 할 수 있 습 니 다.
    파일 을 수정 하고 비고 열 을 추가 합 니 다.
    
    class Customer(models.Model):
        #     
        _id = models.AutoField(primary_key=True)
        name = models.CharField(max_length=20, verbose_name="   ")
        mobile = models.IntegerField(default=0, verbose_name="    ")
        create_time = models.DateField(default=timezone.now)
        mark = models.CharField(max_length=50, null=True, blank=True)
    이전 명령 을 다시 실행 한 후 응용 프로그램 을 실행 하면 다음 과 같은 효 과 를 얻 을 수 있 습 니 다.
    Python Django 后台管理也要好好学之后台模型属性
    다음은 이 필드 를 사용 하여 데 이 터 를 보 여 주 며models.py파일 에 설정 합 니 다.
    
    empty_value_display = '/'
    실행 후 얻 은 결 과 는 다음 과 같다.
    Python Django 后台管理也要好好学之后台模型属性
    18.2.6 fields
    표 시 된 폼 필드 와 순서 조합 을 제어 합 니 다.예 를 들 어 다음 코드 를 추가 한 후에 결 과 를 확인 하면 다음 과 같다.
    
    list_display = ["_id", 'warp_name', "mobile", "create_time","mark"]
    fields = ["mobile","name"]
    Python Django 后台管理也要好好学之后台模型属性
    18.2.7 기타 보충 할 속성
    filter_horizontal 과 filtervertical
    메뉴 의 가로줄 전시 와 세로 줄 전 시 를 선별 합 니 다.
    list_editable
    필드 편집 가능.
    list_filter
    필터 속성 설정.
    list_per_page
    각 페이지 에 표 시 된 데이터 항목 수.
    ordering
    정렬 필드 목록.
    paginator
    페이지 별 대상 은 조기 도입admin.py이 필요 하 다.
    radio_fields
    필드 는 폼 에서 선택 단추 입 니 다.
    readonly_fields
    필드 편집 불가.
    search_fileds
    목록 페이지 에 추 가 된 필터 필드 입 니 다.
    파 이 썬 Django 백 스테이지 관리 후 데스크 톱 모델 속성 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 Django 백 스테이지 관리 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기