için belirtilen bilinmeyen alan (lar) (kullanıcı adı) User
ve UserProfile
kayıtlarını içeren bir kayıt formu oluşturmaya çalışıyorum. Sorun şu ki, Django
, username
'un mevcut olmadığını söylüyor.UserProfile - Django
django.core.exceptions.FieldError: Unknown field(s) (username) specified for Use
rProfile
Ben oluşturacak istiyorum (hem dahili User
ve UserProfile
itibaren) tüm istediğim özelliklerini içerir.
Bununla ne yapmalı? Sorun şu ki, UserCreationForm.Meta.fields
ekledim, ancak nasıl çalışırım? Bu açık ve basit bir çözüm gibi görünüyor.
class UserProfileCreationForm(UserCreationForm):
password1 = forms.CharField(label="Password", widget=forms.PasswordInput)
password2 = forms.CharField(label="Password confirmation", widget=forms.PasswordInput)
class Meta(UserCreationForm.Meta):
model = UserProfile
fields = UserCreationForm.Meta.fields + ('date_of_birth','telephone','IBAN',)
def clean_password2(self):
# Check that the two password entries match
password1 = self.cleaned_data.get("password1")
password2 = self.cleaned_data.get("password2")
if password1 and password2 and password1 != password2:
msg = "Passwords don't match"
raise forms.ValidationError("Password mismatch")
return password2
def save(self, commit=True):
user = super(UserCreationForm, self).save(commit=False)
user.set_password(self.cleaned_data["password1"])
if commit:
user.save()
return user
KULLANICIPROFİLİ MODÜLÜ:
Bu
şeklidir hata söylediği gibiclass UserProfile(models.Model):
user = models.OneToOneField(User, related_name='user_data')
date_of_birth = models.DateField()
telephone = models.CharField(max_length=40)
IBAN = models.CharField(max_length=40)
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
MARITAL_STATUS_CHOICES = (
('single', 'Single'),
('married', 'Married'),
('separated', 'Separated'),
('divorced', 'Divorced'),
('widowed', 'Widowed'),
)
marital_status = models.CharField(max_length=40, choices=MARITAL_STATUS_CHOICES, null=True, blank=True)
HOW_DO_YOU_KNOW_ABOUT_US_CHOICES = (
('coincidence', u'It was coincidence'),
('relative_or_friends', 'From my relatives or friends'),
)
how_do_you_know_about_us = models.CharField(max_length=40, choices=HOW_DO_YOU_KNOW_ABOUT_US_CHOICES, null=True,
blank=True)
# TRANSLATOR ATTRIBUTES
is_translator = models.BooleanField(default=False)
language_tuples = models.ManyToManyField(LanguageTuple)
rating = models.IntegerField(default=0)
number_of_ratings = models.BigIntegerField(default=0)
def __unicode__(self):
return '{} {}'.format(self.user.first_name, self.user.last_name)
def __str__(self):
return '{} {}'.format(self.user.first_name, self.user.last_name)
Teşekkürler Daniel. Yani bir CustomUserMode (User, UserProfile): pass oluşturmam gerektiğini düşünüyorsunuz? Kimlik doğrulama ve benzer şeyler çalışması gerektiği gibi çalışacak mı? –