반응형
Django : 인증 사용자를 모델로 가져 오기
한 가지 문제가 있습니다. Django에서 새로운 모델을 만들었습니다.
from django.db import models
from django.contrib.auth import user
class Workers(models.Model):
user = models.OneToOneField(User, primary_key=True)
work_group = models.CharField(max_length=20)
card_num = models.IntegerField()
def __unicode__(self):
return self.user
하지만 작동하지 않습니다. ImportError: cannot import name user
그것을 고치는 방법?
그래서 db에 OneToOne
"auth_user"테이블과 관계 가있는 새 테이블 "workers"를 만들고 싶습니다 . 감사.
from django.contrib.auth.models import User
모델을 놓쳤으며 사용자는 대문자로 표시됩니다.
사용자 지정 사용자 모델을 사용하는 경우 다음을 사용해야합니다.
from django.contrib.auth import get_user_model
User = get_user_model()
자세한 내용은 문서 에서 찾을 수 있습니다 .
Django 1.11에서 변경 :
가져 오기 시간에 get_user_model ()을 호출하는 기능이 추가되었습니다.
사용자 지정 사용자 모델을 사용하는 경우 다음을 수행하여 참조하십시오.
from django.contrib.auth import get_user_model
User = get_user_model()
또는 외래 키 또는 다 대다 관계에서 사용하는 경우 :
from django.conf import settings
....
user = models.ForeignKey(settings.AUTH_USER_MODEL)
코드를 일반적으로 유지 하려면 인증 사용자 모델을 직접 참조하는 대신 사용자 모델과 모델의 관계를 정의 할 때 참조 하는 get_user_model()
방법과 사용자 모델을 검색 하는 방법을 사용 AUTH_USER_MODEL
하십시오.
AUTH_USER_MODEL
좋은 해결책입니다. 여기에 질문에 따른 완전한 솔루션이 있습니다.
from django.db import models
from django.conf import settings
class Workers(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
work_group = models.CharField(max_length=20)
card_num = models.IntegerField()
def __unicode__(self):
return self.user.id
참고 URL : https://stackoverflow.com/questions/12921789/django-import-auth-user-to-the-model
반응형
'programing' 카테고리의 다른 글
Scala에서 인덱스를 사용한 효율적인 반복 (0) | 2020.10.13 |
---|---|
Rails의 컨트롤러에서 레코드가 있는지 확인하십시오. (0) | 2020.10.13 |
Objective-C-nan에 대한 플로트 검사 (0) | 2020.10.13 |
SQL 쿼리 : 테이블에서 최신 N을 제외한 모든 레코드를 삭제 하시겠습니까? (0) | 2020.10.13 |
기기에 카메라가 있는지 확인 하시겠습니까? (0) | 2020.10.13 |