Django如何将帖子分配给用户

问题描述 投票:2回答:1

我需要在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)

我能知道如何解决吗?

django forms view
1个回答
-1
投票

将表格重写为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)
© www.soinside.com 2019 - 2024. All rights reserved.