Django ModelForm排除数据保存

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

尝试使用登录用户保存数据。试过如下。

models.朋友

class MyModel(TimeStamped):
    user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True, null=True)
    title = models.CharField(max_length=250)

forms.朋友

class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel
        exclude = ['user']

views.朋友

def add(request):
    if request.method == 'GET':
        form = MyForm()
    else:
        form = MyForm(request.POST, request.FILES)
        if form.is_valid():
            form.save(commit=False)
            form.save()
            messages.success(request, 'Message Sent Successfully')
            redirect('home')
    return render(request, "add.html", {'form': form})

它保存了数据。但问题是用户没有设置登录用户。尝试添加查看form.user = request.user。仍然没有储蓄。

django
1个回答
0
投票

试试这个。

def add(request):
    if request.method == 'GET':
        form = MyForm()
    else:
        form = MyForm(request.POST, request.FILES)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.user = request.user
            obj.save()
            messages.success(request, 'Message Sent Successfully')
            redirect('home')
    return render(request, "add.html", {'form': form})
© www.soinside.com 2019 - 2024. All rights reserved.