我有两个模型,User
和Freelancer
:
#models.py
class User(AbstractBaseUser):
class Freelancer(models.Model):
user = models.ForeignKey(User)
我有两种表格:
#forms.py
class UserUpdateForm(forms.ModelForm):
class Meta:
model = User
fields = ('email',)
class FreelanceUpdateForm(forms.ModelForm):
class Meta:
model = Freelancer
fields = ('first_name', 'surname', 'university', 'biography', 'skills')
我想在同一页上同时显示这两个视图,因此我创建了一个视图:
def profile(request, pk):
if request.method == 'POST':
user_form = UserUpdateForm(request.POST, instance=request.user)
freelancer_form = FreelanceUpdateForm(request. POST, instance=request.user.id)
if all([user_form.is_valid(), freelancer_form.is_valid()]):
user = user_form.save()
freelancer_form = freelancer_form.save()
return redirect(user)
else:
user_form = UserUpdateForm(instance=request.user)
freelancer_form = FreelanceUpdateForm(instance=request.user.id)
return render(request, 'freelancestudent/profile.html',{
'user_form': user_form,
'freelancer_form': freelancer_form,
})
问题是我无法获得带有freelancer_form = FreelanceUpdateForm(instance=request.user.id)
的freelancer_form
。我尝试了freelancer_form = FreelanceUpdateForm(instance=Freelancer(user_id=request.user.id))
填充表,但它不会将其保存为有效,因为它没有绑定
我如何获得相关的自由职业者
为此,您需要在
Freelancer.user
中指定related_name
才能反向访问它:现在,您可以使用简单的
User.freelancer
从User
模型访问Freelancer
,这样您就可以创建如下表单:相关问题 更多 >
编程相关推荐