Kullanıcı Modelimi bir UserProfile modeli ile genişletmek istiyorum. Bu UserProfile modeli bir ForeignKey Alanı içerir. Formda, bu form alanını önceden doldurmak için ModelChoiceField kullanmak istiyorum. Ben formu göndermek zamanForeignKey Alanıyla Form Verilerini Kaydetme
, ben
ValueError at /accounts/register/
Cannot assign "'13'": "UserProfile.course" must be a "Course" instance.
Herhangi bir yardım mutluluk duyacağız olsun!
Benim Kod:
models.py
class Course(models.Model):
course_accid = models.CharField(max_length=10)
def __str__(self):
return self.course_accid
class UserProfile(models.Model):
# This line is required. Links UserProfile to a User model instance.
user = models.OneToOneField(User)
website = models.URLField(blank=True)
picture = models.ImageField(upload_to='profile_images', blank=True)
course = models.ForeignKey(Course)
def __unicode__(self):
return self.user.username
def user_registered_callback(sender, user, request, **kwargs):
profile = UserProfile(user = user)
profile.website = request.POST["website"]
profile.course = Course.objects.get(pk=request.POST["course"]),
profile.save()
forms.py
class RegistrationForm(RegistrationForm):
course = forms.ModelChoiceField(queryset=Course.objects.all())
website = forms.URLField()
Ayrıca, kullanıcıyı kaydettirmeye çalıştığınız görünümü bize gösterebilir misiniz? Formun doğrulanmasını nasıl ele alıyorsunuz? Ayrıca, 'sınıf RegistrationForm (RegistrationForm):' doğru görünmüyor. – ozgur
Bunu işlemek için django-registration kullanıyorum ve bu nedenle işlemek için bir yöntem veya sınıf yok. RegistrationForm (RegistrationForm) şu an fark etmediğim şanssız bir isim olabilir. Ben form doldurucusu için özel UserProfile alanlarını ekleyerek django kayıttan RegistrationForm değiştiriyorum. Farklı bir şey seçmeliydim. – kftb