Django 에서 Admin 스타일 과 기능 을 사용자 정의 하 는 방법

사용자 정의 Admin 스타일 과 기능
1 페이지 중국어 수정
1.1 언어 를 중국어 로 설정
settings.pyLANGUAGE_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 배경 스타일 수정
django-graphpelli 제3자 응용 프로그램 을 사용 하여 admin 스타일 을 수정 합 니 다.
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 페이지 기능 열기
응용/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 필터 기능 열기
응용/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+shift+r)을 강제 하고 js 와 css 코드 를 다시 불 러 옵 니 다.

총결산
위 에서 말씀 드 린 것 은 소 편 이 소개 한 Django 에서 Admin 스타일 과 기능 을 사용자 정의 하 는 실현 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!

좋은 웹페이지 즐겨찾기