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

Django 如何将登录的用户与表单中的模型关联?,django,django-models,django-forms,django-views,Django,Django Models,Django Forms,Django Views,我有个问题。在我的项目中,我需要将登录表单的用户与我的模型相关联。表单包含('user_logged'、'name'、'description'和'conclusion'),我希望表单自动记录用户日志,以及其他我将手动放置的字段。我在我的模型中尝试了这一点: user = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, on_delete=models.CASCADE) 但我填写表格,不让我的用户登录,用户的

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

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}

对于CBV,您只需访问
get\u form\u kwargs()
方法并添加
登录的用户:

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})

嗯,我试过这个。不工作,Django需要为变量'user_loged'创建init,并且不知道我将在哪里创建init以及如何创建它。你能帮助我如何创建这个init以及在哪里创建吗?谢谢我的朋友错误:uuu init_uuuuuuuuu()得到一个意外的关键字参数“user\u logged”。如果您尝试过,您得到的错误是什么?显示方法此错误:网页:TypeError at/create\u tarefa/\uuuuu init\uuuuuuuuuuuuuuuuuuuuuuu()在控制台:文件“C:\Users\Matheus Soares\ProjetoIlhaSoft\venv\lib\site packages\django\views\generic\edit.py”,第33行,在get\form返回表单类(**self.get\u表单\kwargs())TypeError:\uuu init使用FBV获得了一个意外的关键字参数“user_logged”。它非常简单,您可以使用当前代码编辑您的问题,您当前的函数我可以这样做吗?你能给我详细解释一下吗?
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})