Kazı yaptıktan sonra bunu buldum
https://docs.djangoproject.com/en/1.5/topics/auth/customizing/#custom-users-and-the-built-in-auth-forms
suçlu django.contrib.auth.forms.py
içinde UserCreationForm
içinde bir fonksiyonu clean_username
olup. Birkaç biletler yaratılmıştır, ancak görünüşe sürdürücüler bir kusur olduğunu sanmıyorum:
https://code.djangoproject.com/ticket/20188
https://code.djangoproject.com/ticket/20086
def clean_username(self):
# Since User.username is unique, this check is redundant,
# but it sets a nicer error message than the ORM. See #13147.
username = self.cleaned_data["username"]
try:
User._default_manager.get(username=username)
except User.DoesNotExist:
return username
raise forms.ValidationError(self.error_messages['duplicate_username'])
bu dosyada User
doğrudan yerleşik kullanıcı modeline başvuruda bulunuyor. Düzeltmek için
, benim özel
from models import User #you can use get_user_model
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth import forms
class MyUserCreationForm(UserCreationForm):
def clean_username(self):
# Since User.username is unique, this check is redundant,
# but it sets a nicer error message than the ORM. See #13147.
username = self.cleaned_data["username"]
try:
User._default_manager.get(username=username)
except User.DoesNotExist:
return username
raise forms.ValidationError(self.error_messages['duplicate_username'])
class Meta(UserCreationForm.Meta):
model = User
class MyUserAdmin(UserAdmin):
add_form = MyUserCreationForm
admin.site.register(User,MyUserAdmin)
oluşturur oluşturulan Yoksa
User
değişkeni yerine orijinal
UserCreationForm
yama maymun deneyebilirsiniz.
Güzel yakalama. Kullanıcı modelini genişlettiğinizde bu sınıfları doğru bir şekilde kullanmanız için sizi cesaretlendiren Django dokümanlar göz önünde bulundurulduğunda bu kesinlikle ele alınmalıdır. – dustinfarris
Sadece aradığım çözüm. – Charlesliam
Günümü kurtardı! – neelix