RelatedObjectDoesNotExist в / updateprofile У пользователя нет профиля - PullRequest
0 голосов
/ 20 июня 2020

У меня есть один модельный профиль пользователя, который связан с пользователем отношениями один к одному. Я пытаюсь создать комбинированную форму для формы пользователя и профиля пользователя, но она показывает, что onetoonedescripter не имеет атрибута _meta.

views.py

'' 'def UpdateProfile (request):

if request.method =='POST':
    EUF_form = EditUserForm(request.POST, instance=request.user )
    EPF_form = EditProfileForm(request.POST, instance=request.user.Profile )
    if EUF_form.is_valid() and EPF_form.i_valid():
        EUF_form.save()
        EPF_form.save()
        return HttpResponse("Profile updated succesfully.")
        return render(request, 'profile_page.html')
else:
    EUF_form = EditUserForm(instance=request.user)
    EPF_form = EditProfileForm(instance=request.user.profile)
return render(request, 'edit_profile.html', {'EUF_form':EUF_form, 'EPF_form':EPF_form})

'' '

models.py' '' Профиль класса (models.Model):

user = models.OneToOneField(User, on_delete= models.CASCADE)
mobile = models.CharField(max_length=20, blank=True)
bio = models.CharField(max_length=300, default='')
avatar = models.ImageField(upload_to='avatars', blank=True)
birthday = models.DateField(blank=True, default='1990-12-01')
website = models.CharField(blank=True, max_length=256)
gender = models.CharField(blank=True, max_length=20, choices=[('M','Male'), ('F','Female'),('O','Other')])


def __str__(self):
    return self.user.username

'' '

forms.py '' 'класс EditUserForm (ModelForm):

first_name = forms.CharField(widget=forms.TextInput(
    attrs={'class': 'form-control','type':'text','name': 'first_name'}),
    label="First Name")
last_name = forms.CharField(widget=forms.TextInput(
    attrs={'class': 'form-control','type':'text','name': 'last_name'}),
    label="Last Name")
username = forms.CharField(widget=forms.TextInput(
    attrs={'class': 'form-control','type':'text','name': 'username'}),
    label="Username")
email = forms.EmailField(widget=forms.TextInput(
    attrs={'class': 'form-control','type':'text','name': 'email'}),
    label="Email")

class Meta:
    model = User
    fields = ['first_name','last_name','username','email']

класс EditProfileForm (ModelForm):

mobile = forms.CharField(widget=forms.TextInput(
    attrs={'class': 'form-control','type':'tel','name': 'mobile'}),
    label="Phone number")
bio = forms.CharField(widget=forms.Textarea,
    label="Bio")
birthday = forms.DateField(widget=forms.DateInput(
    attrs={'class': 'form-control','type':'date','name': 'birthday'}),
    label="Username")
website = forms.URLField(widget=forms.URLInput(
    attrs={'class': 'form-control','type':'url','name': 'website'}),
    label="website")
gender = forms.ChoiceField(choices=[('M','Male'), ('F','Female'),('O','Other')],
    widget=forms.Select ,
    label="gender")


class Meta:
    model = Profile
    fields = ['mobile','bio','birthday','website','gender']

' ''

...