0

我有一个模型

class someModel(models.Model):
    .....
    .....
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    #User is the field that I need from the form
    .....
    .....

在这里,我有必须填写的字段和连接到用户表的用户字段

在我的表格中

class someForm(forms.ModelForm):
class Meta:
    model = someModel
    fields = [....., 'user']
    widgets = {  ....  }

我想从我的视图中传递用户,但我不知道该怎么做,我无法在网上找到它。表单失败,因为用户未通过。

@login_required
def someView(request):
    organisator= request.user
    if request.method == "POST":

        cl_form = SomeModel(data=request.POST, initial={'user': organisator})


        if cl_form.is_valid():
            cl_form.save(commit=True)

        else:
            print(cl_form.errors)

        return HttpResponseRedirect(reverse('someviewfromurls'))

    else:
        cl_form = someForm(initial={'user':organisator})
        return render(request, 'somefile.html', context= 
   {"cl_form": cl_form})
4

1 回答 1

0

你可以这样尝试:

if cl_form.is_valid():
    instance = cl_form.save(commit=False)
    instance.user = request.user
    instance.save()
于 2018-12-17T03:09:34.463 回答