【问题标题】:Django how to assign posts to userDjango如何将帖子分配给用户
【发布时间】:2020-09-17 03:24:35
【问题描述】:

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

    将表单改写为excludeuser字段:

    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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-04
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 2018-12-05
      • 2022-10-07
      相关资源
      最近更新 更多