如何将用户登录与表单中的模型相关联?

时间:2018-05-16 02:43:33

标签: django django-models django-forms django-views

我有问题。在我的项目中,我需要将登录表单的用户与我的模型相关联。表单包含(' user_logged',' name','说明'以及'结论'),我希望表单自动记录用户,以及我将手动放置的其他字段。我在我的模特中试试这个:

user = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, on_delete=models.CASCADE)

但是我填写了我的表格,并且没有让我的用户登录,用户的结果是:"无"。

我的观点如下:

@method_decorator(login_required, name='dispatch')
class CreateTarefa(CreateView):
model = Tarefa
fields = ['nome_tarefa', 'descricao', 'concluida']
template_name = 'tarefa_form.html'

非常感谢。 祝福。

1 个答案:

答案 0 :(得分:0)

在您只是收到get方法的表单中,然后将initial值添加到表单中,如下所示:

form = MyForm()
form.initial = {'user_logged':request.user}

form = MyForm({'user_logged':request.user})

对于CBV,您只需访问get_form_kwargs()方法并添加logged in用户:

class CreateTarefa(CreateView):
    model = Tarefa
    fields = ['nome_tarefa', 'descricao', 'concluida']
    template_name = 'tarefa_form.html'


    def get_form_kwargs(self, *args, **kwargs):
         return dict(super(CreateTarefa, self).get_form_kwargs(*args,
                **kwargs),**{'user_logged': self.request.user})
相关问题