【发布时间】:2022-01-20 14:05:30
【问题描述】:
早安 Stackoverflow, 用户应该能够添加多个标题,而不是总是覆盖一个添加的标题。
\\views.py
def edit_profile(request):
try:
profile = request.user.userprofile
except UserProfile.DoesNotExist:
profile = UserProfile(user=request.user)
if request.method == 'POST':
form = UserProfileForm(request.POST, instance=profile)
if form.is_valid():
form.save()
return redirect('/test')
else:
form = UserProfileForm(instance=profile)
return render(request, 'forms.html', {'form': form, 'profile': profile})
\\models.py
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
title = models.CharField(max_length=1024)
def __str__(self):
return str(self.title)
\\forms.py
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ('title',)
然后用户在网站上有一个表单,他可以在其中添加特定的标题。
然而,直到现在,每次用户填写标题表单时,数据库中的值都会被覆盖。 应该是: 在表单中添加新标题时,只需将其添加到其中即可。
最后,我应该有可能在 HTML 模板中使用 Foor 循环来显示相应用户的所有添加标题。
你知道怎么做吗?
【问题讨论】:
-
对于您的用户模型,您是使用
OneToManyField还是OneToOneField来存储userprofile? -
UserProfile 有
OneToOneField,后面也一样是多余的。 -
@dbo123 不知道,我只是用了基本的用户模型
-
@NixonSparrow 需要什么改变?