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

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

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

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'

非常感谢。最好的祝愿。

django django-models django-forms django-views
1个回答
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})
© www.soinside.com 2019 - 2024. All rights reserved.