문제 1 . django admin page 수정하기
현 상황
- django User 를 커스텀한 상태
- admin 페이지에서 사용자 추가 후 로그인하면 접속이 되지 않는 상태
해결방안
UseraAdmin 상속 받아 커스텀유저어드민 클래스 만들기
from django.contrib.auth.admin import UserAdmin
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin # 추가 !
from .models import Account
class AccountAdmin(UserAdmin):
#Fields = ['username', 'password', 'name', 'user_phone', 'is_admin', 'is_staff', 'is_superuser']
list_display = ('username', 'name', 'user_phone', 'is_admin', 'is_staff', 'is_superuser', 'create_at', 'last_login')
search_fields = ('username', 'name')
readonly_fields = ('create_at','last_login')
admin.site.register(Account,AccountAdmin)
문제 2 . model field 선택 미스
- BooleanField 를 지정했는데 CharField 사용
- BooleanField 를 사용하지 않아 불필요한 필드를 쓰게 됨
# 그 전 코드
from django.db import models
gender = (
('male' , '남자'), # 남자
('female' , '여자'), # 여자
('other' , '상관없음') # 선택안함
)
status = (
('Y' , 'Y'),
('N' , 'N'),
)
class Naver_id_manager(models.Model):
...
naver_gender = models.CharField(max_length=6 , verbose_name='성별', choices=gender, blank=True, null=True)
...
naver_real_status = models.CharField(max_length=6 , verbose_name='실명여부', choices=status, blank=True, null=True)
naver_login_status = models.CharField(max_length=6 , verbose_name='로그인 가능여부', choices=status, blank=True, null=True)
...
# 이후 코드
from django.db import models
gender = [
('남자', 'male'), # 남자
('여자', 'female'), # 여자
('상관없음', 'other') # 선택안함
]
class Naver_id_manager(models.Model):
...
naver_gender = models.BooleanField(verbose_name='성별', choices=gender, blank=True, null=True)
...
naver_real_status = models.BooleanField(verbose_name='실명여부', default=False, blank=True, null=True)
naver_login_status = models.BooleanField(verbose_name='로그인 가능여부', default=True, blank=True, null=True)
...
default=False => 아니오
default=True => 예
from django.db import models
import uuid
from django.db.models import URLField
status = (
('Y' , 'Y'),
('N' , 'N'),
)
class Naver_person(models.Model):
...
question_status = models.CharField(max_length=6, choices=status, default='N', verbose_name='질문 작성 여부')
answer_status = models.CharField(max_length=6, choices=status, default='N', verbose_name='답변 작성 여부')
adoption_status = models.CharField(max_length=6, choices=status, default='N', verbose_name='채택 여부')
...
from django.db import models
import uuid
from django.db.models import URLField
class Naver_person(models.Model):
...
# 기본값을 False 로 하면 '아니오' 문구 기본값으로 설정된다
question_status = models.BooleanField(verbose_name='질문 작성 여부', default=False, blank=True, null=True)
answer_status = models.BooleanField(verbose_name='답변 작성 여부', default=False, blank=True, null=True)
adoption_status = models.BooleanField(verbose_name='채택 여부', default=False, blank=True, null=True)
...
'FrameWork > Django' 카테고리의 다른 글
AWS EC2, Ubuntu에서 Django 프로젝트 배포하기 - 1) 인스턴스 생성 , 우분투 접속, anaconda 설치 (1) | 2023.05.22 |
---|---|
룸 생성페이지 / 수정페이지 (0) | 2022.10.05 |
룸 상세페이지 (1) | 2022.09.23 |
마이페이지 (1) | 2022.09.23 |
9월 15일 (목) 질문 (0) | 2022.09.16 |