繁体   English   中英

如何在 form_class、django、CBV 中访问请求 object

[英]How do I access the request object in a form_class, django, CBV

我正在尝试将请求中的数据传递到我的表单。 目前,这会导致错误:

基础模型。 init () 得到了一个意想不到的关键字参数 'request'

我的看法:

class TaskCreate(LoginRequiredMixin, CreateView):
   model = Task
   template_name = "tasks/task_form.html"
   form_class = DateInputForm

我的观点(get_form_kwargs 函数):

    def get_form_kwargs(self, *args, **kwargs):
        form_kwargs = super().get_form_kwargs()
        form_kwargs['request'] = self.request
        return form_kwargs

从我的表单初始化:

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        request = kwargs.pop('request', None)
        self.fields['tags'].queryset = Tag.objects.filter(user=request.user.id)

我知道我可以在我的请求中找到用户的 ID

解决方法: (1)我的看法(get_form_kwargs函数):

    def get_form_kwargs(self, *args, **kwargs):
        form_kwargs = super().get_form_kwargs(*args, **kwargs)
        form_kwargs['request'] = self.request
        return form_kwargs

(2) 从我的表单初始化:

    def __init__(self, request,*args, **kwargs):
        self.request = request
        super().__init__(*args, **kwargs)
        self.fields['tags'].queryset = Tag.objects.filter(user=request.user.id)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM