我需要在Django中为用户分配信息。我创建了
user = models.ForeignKey('authentication.CustomUser', on_delete=models.CASCADE)
然后,如果我在form.html中显示此模型,那么我必须选择所有用户之一,如果我不在form.html中显示用户,则该表单不会保存我的视图文件:
def formularz(request):
form = DodajForm(request.POST)
if form.is_valid():
ogloszenie = form.save(commit=False)
ogloszenie.user = request.user
ogloszenie.save()
return redirect('atrakcje:after')
else:
ogloszenie = DodajForm()
context = {
'form': form,}
return render(request, 'formularz.html', context)
我能知道如何解决吗?
将表格重写为exclude
user
字段:
class DodajForm(forms.ModelForm):
class Meta:
model = Dodaj
exclude = ['user']
在视图中,最好更改实例,并让表单执行保存逻辑,因为ModelForm
还可以保存多对多字段:
def formularz(request):
if request.method == 'POST':
form = DodajForm(request.POST, request.FILES)
if form.is_valid():
form.instance.user = request.user
form.save()
return redirect('atrakcje:after')
else:
ogloszenie = DodajForm()
context = {'form': form}
return render(request, 'formularz.html', context)