Özel kullanıcı modelimin kullanıcı adı alanı olarak bir e-posta alanı kullanmak istiyorum. Ben Django'nın AbstractUser modelini sınıflara aşağıdaki özel Kullanıcı modelimiz var:Django 1.5'teki kullanıcı adı alanını e-posta olarak kullanma Özel kullanıcı modeli sonuçları FieldError
class CustomUser(AbstractUser):
....
email = models.EmailField(max_length=255, unique=True)
USERNAME_FIELD = 'email'
Ama
python manage.py sql myapp
çalıştırdığınızda aşağıdaki hatayı alıyorum:
FieldError: Local field 'email' in class 'CustomUser' clashes with field of similar name from base class 'AbstractUser'
başıma dahil nedeni e-posta alanı ilk etapta unique=True
seçeneğini eklemektir. aksi takdirde olsun:
myapp.customuser: The USERNAME_FIELD must be unique. Add unique=True to the field parameters.
Şimdi açıdan bu kadar: https://docs.djangoproject.com/en/1.5/topics/db/models/#field-name-hiding-is-not-permitted
Bunu başarmak nasıl?
sizin create_superuser yöntemi ne içeriyor? – Siecje
O create_user kullanarak ('yerine email' ile) hiçbir' username' alanına sahip bir kullanıcı nesnesi oluşturur: 'u = self.create_user (e-posta, şifre, ** extra_fields)', süper "özel" alanları ('is_staff setleri, is_superuser, ... ') ve daha sonra bu kullanıcıyı kaydeder. – OrPo
'deafault Django'nın personeli uygulanmak üzere bir olması gerekir ya da bunu atlayabilir CustomUserMananger' ve uygulanmasıdır? O zamanlar gördüğüm kadarıyla – andi