아래의 django 1.5 사용자 모델을 확장했으며 데이터베이스에 행을 삽입 할 때 문제가 있습니다. 내 models.py 파일은 다음과 같습니다.django 사용자 정의 사용자 모델 1.5
class MyUserManager(BaseUserManager):
def create_user(self, email, password=None):
if not email:
raise ValueError('Users must have an email address')
user = self.model(
email=MyUserManager.normalize_email(email),
)
user.set_password(password)
user.save(using=self._db)
return user
def create_superuser(self, email, password):
user = self.create_user(email,
password=password
)
user.is_admin = True
user.save(using=self._db)
return user
class MyUser(AbstractBaseUser):
email = models.EmailField(
verbose_name='Email address',
max_length=255,
unique=True,
db_index=True,
)
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
objects = MyUserManager()
USERNAME_FIELD = 'email'
def get_full_name(self):
# The user is identified by their email address
return self.email
def __unicode__(self):
return self.email
내 admin.py는 다음과 같습니다.
class MyUserAdmin(UserAdmin):
# The forms to add and change user instances
form = UserChangeForm
add_form = UserCreationForm
# The fields to be used in displaying the User model.
# These override the definitions on the base UserAdmin
# that reference specific fields on auth.User.
list_display = ('email', 'is_admin')
list_filter = ('is_admin',)
fieldsets = (
(None, {'fields': ('email', 'password')}),
('Permissions', {'fields': ('is_admin',)}),
('Important dates', {'fields': ('last_login',)}),
)
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('email', 'password1', 'password2')}
),
)
search_fields = ('email',)
ordering = ('email',)
filter_horizontal =()
// Now register the new UserAdmin...
admin.site.register(MyUser, MyUserAdmin)
// ... and, since we're not using Django's builtin permissions,
// unregister the Group model from admin.
admin.site.unregister(Group)
나는 지금 내가 데 문제가 내가, 내가 오류 메시지가 아래 말하는 무엇입니까 관리자에 아무것도 수정 때마다입니다 장고 튜토리얼 (
https://docs.djangoproject.com/en/dev/topics/auth/customizing/#a-full-example)
에서 위 따랐다.
(1452, '추가 또는 자식 행을 업데이트 할 수 없습니다가 :. 외래 키 제약 조건이 실패 (csiop
django_admin_log
, CONSTRAINT
user_id_refs_id_c8665aa
FOREIGN KEY (
user_id
는) 참고 문헌 (
id
가))
auth_user
')
그래서, 모습 django_admin_log 테이블은 항상 auth_user 모델에 대한 외부 키 참조가 필요합니다. 그러나 고객 사용자 모델을 만들었으므로 수퍼 유저를 만들 때 사용자 세부 정보는 고객 MyUser 테이블에만 저장되며 auth_user 모델에는 항목이 생성되지 않으므로 문제가 발생하는 것으로 보입니다.
어떻게이 문제를 해결할 수 있습니까? 제발 제안 해주세요. 스리 칸스
설정에'AUTH_USER_MODEL'을 (를) 설정 했습니까? https://docs.djangoproject.com/en/dev/topics/auth/customizing/#substituting-a-custom-user-model – Ngenator
예. 사용자 정의 MyUser를 가리 키도록 AUTH_USER_MODEL을 설정했습니다. – Dev