我有个问题。在我的项目中,我需要将登录表单的用户与我的模型相关联。表单包含('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'
非常感谢。最好的祝愿。
在您只是收到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})