Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将参数从视图传递到formset Django_Django_Django Forms_Django Views - Fatal编程技术网

如何将参数从视图传递到formset Django

如何将参数从视图传递到formset Django,django,django-forms,django-views,Django,Django Forms,Django Views,我想将参数从views.py传递到forms.py Django中的formset? 我的设置:Django 2.0.7,Python 3.6.5 谢谢你帮助我 您可以通过在基于类的视图中重写get\u form\u kwargs方法来实现。是文档中的一个小说明,您可以找到源代码 get\u form\u kwargs所做的是将关键字参数字典传递给表单中的\uuu init\uuu。因此,您必须在两个位置更改代码-views.py和forms.py 例如: 视图.py class CreateP

我想将参数从views.py传递到forms.py Django中的formset? 我的设置:Django 2.0.7,Python 3.6.5


谢谢你帮助我

您可以通过在基于类的视图中重写
get\u form\u kwargs
方法来实现。是文档中的一个小说明,您可以找到源代码

get\u form\u kwargs
所做的是将关键字参数字典传递给表单中的
\uuu init\uuu
。因此,您必须在两个位置更改代码-views.py和forms.py

例如:

视图.py

class CreatePost(generic.CreateView):
    # SOMETHING HERE

    def get_from_kwargs(self):
        kwargs = super().get_form_kwargs()
        kwargs.update({"user", self.request.user})
        return kwargs
class PostForm(forms.ModelForm):
    # SOMETHING HERE

    def __init__(self, *args, **kwargs):
        user = kwargs.pop("user", None)
        super().__init__(*args, **kwargs)
        if user is not None:
            self.fields["group"].queryset = models.Group.object.filter(members = user)
forms.py

class CreatePost(generic.CreateView):
    # SOMETHING HERE

    def get_from_kwargs(self):
        kwargs = super().get_form_kwargs()
        kwargs.update({"user", self.request.user})
        return kwargs
class PostForm(forms.ModelForm):
    # SOMETHING HERE

    def __init__(self, *args, **kwargs):
        user = kwargs.pop("user", None)
        super().__init__(*args, **kwargs)
        if user is not None:
            self.fields["group"].queryset = models.Group.object.filter(members = user)
我在上面的代码中所做的是将用户从视图传递到表单,然后获取用户所属组的查询集(在组模型中,有members ManyToManyField)

有人还举了另一个例子