수퍼 유저와 일반 사용자가 모두 django의 User 객체라는 것을 알고 있지만 일반 사용자 용 필드가 필요하고 수퍼 유저에게는 해당 필드가 필요없는 사용자 정의 사용자 클래스를 작성하려면 어떻게해야합니까?장고에서는 슈퍼 유저가 슈퍼 유저가 아닌 다른 필수 필드를 가질 수 있습니까?
1
A
답변
0
데이터베이스에 구조가 복잡하지 않습니다. 예를 들어 JSONFields는 앱이 성장할 때 길들이기가 극히 어려울 수 있습니다.
나는 그것을 "단순하게"만들려고 노력했다. - 더 정비 가능하다. (나는 당신이 미래에 모델을 확장하기를 원할지도 모르는 것들을해야한다고 상상한다.) 이것이 새로운 프로젝트라면 쉽게 change the default user model 수 있습니다. 그러나 그것은 당신의 경우에 도움이 될 수도 있고 그렇지 않을 수도 있습니다.
from django.db import models
from django.contrib.auth.models import AbstractBaseUser
class Mortal(AbstractBaseUser):
is_superuser = False
username = models.CharField(max_length=256)
first_name = models.CharField(max_length=256)
last_name = models.CharField(max_length=256)
class Admin(AbstractBaseUser):
is_superuser = True
username = models.CharField(max_length=256)
다음 make your own authentication backend :
class MyBackend(object):
"""
Danger! A backend to authenticate only via username
"""
def authenticate(self, username=None):
try:
return Mortal.objects.get(username=username)
except Mortal.DoesNotExist:
try:
return Admin.objects.get(username=username)
except Admin.DoesNotExist:
return None
1
당신이 작성 될 사용자에게 외래 키와 프로필 클래스 (예를 들어 사용자 프로필)을 가질 수
당신은 항상 두 가지 모델을 만들 수 있습니다 사용자가 웹 사이트의 등록 양식을 사용하여 가입하는 경우에만 이렇게하면 관리 사이트 또는 명령 줄을 통해 작성된 수퍼 유저에게는 추가 프로필 인스턴스가 필요하지 않습니다.
관련 문제
- 1. Django 주석은 슈퍼 유저가 아닌 사용자를 위해 삭제 조치가 필요합니다.
- 2. Howto symlink Python에서 Python2.7로 슈퍼 유저가 아닌 것
- 3. 수퍼 유저가 아닌 아파치 재시작
- 4. 수퍼 유저가 아닌 파일 사용 권한 변경
- 5. PERFORCE 수퍼 유저가 손실되었습니다.
- 6. @user_passes_test (lambda : u.is_superuser)를 수퍼 유저가 아닌 다른 페이지로 리디렉션
- 7. PostgreSQL 수퍼 유저가 다른 데이터베이스에 액세스하지 않습니다.
- 8. Django Admin에 대한 수퍼 유저가 아닌 사용자의 액세스
- 9. 비 슈퍼 유저
- 10. 슈퍼
- 11. Django : 사용자가 수퍼 유저가 아닌 경우 템플릿의 버튼 숨기기
- 12. 수퍼 유저가 아닌 경우 CSV를 potsgresql 테이블로 가져 오는 방법
- 13. Apache2 Debian localhost 403 오류 (수퍼 유저가 아닌 경우)
- 14. 수퍼 유저가 쉘 스크립트로 스위치를 전환
- 15. 보안 상 django 수퍼 유저가 안 좋습니까?
- 16. Linux에서 비 슈퍼 유저 (루트)로 JBoss 시작하기
- 17. 슈퍼 특권
- 18. 슈퍼 클래스 생성자 오버로드를위한 다중 슈퍼()
- 19. 슈퍼 추천 프로그램에 구멍이 있습니까?
- 20. 여러 생성자는 다른 슈퍼 방법
- 21. 슈퍼 생성자가 실행되기 전에 필드를 초기화 하시겠습니까?
- 22. 단일 모듈에서 슈퍼 채트 및 슈퍼 채트
- 23. 이해 슈퍼
- 24. Objective-C에서 "슈퍼"란 무엇입니까? (자기! = 슈퍼)?
- 25. 슈퍼 클래스가있는 Hibernate @OneToOne은 조인시 슈퍼 클래스 필드 만 검색한다.
- 26. 슈퍼 클래스가 슈퍼 타입을 리턴 타입으로 넘김
- 27. 사용하여 슈퍼
- 28. 는 PHP의 ssh2_exec를 사용하여 슈퍼 사용자 previleges()
- 29. 슈퍼 초기화 후 JavaFx는 슈퍼 메소드를 호출합니다.
- 30. 슈퍼 클래스
[Django 동적 모델 필드] (http://stackoverflow.com/questions/7933596/django-dynamic-model-fields)의 가능한 복제본 –