django - 内联表单集工厂 - 将请求传递给子表单

标签 django django-forms inline-formset

我面临着一项相当具有挑战性的任务:

我需要一个 inlineformset_factory 将我的 ParentEntity 连接到我的外键绑定(bind) ChildEntities

我的 ChildEntity 包含我需要针对每个登录用户进行过滤的外键关系 - 因此我需要 ChildForm 中的请求。

到目前为止我已经尝试过:

  • 我尝试使用 form= kwarg,但无法传递实例 - 只是一个类。所以我无法在这里添加请求。
  • 我尝试使用 formset= kwarg,但是当我尝试将 request=request 作为 inlineformset_factory 的 kwarg 传递时,我得到了错误(意外的 kwarg)

知道我能做什么吗?

最佳答案

有时询问同事甚至比 StackOverflow 还要快:)

这是我的解决方案:

forms.py

class BaseFormSet(BaseInlineFormSet):

def __init__(self, *args, **kwargs):

    self.request = kwargs.pop("request", None)

    super(BaseFormSet, self).__init__(*args, **kwargs)

views.py

MyFormSet = inlineformset_factory(ParentEntity, ChildEntity, formset=BaseFormSet, form=ChildForm, extra=2, max_num=max_num, can_delete=False)
...
formset = MyFormSet(request.POST, instance=obj, request=request)

关于django - 内联表单集工厂 - 将请求传递给子表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21875555/

相关文章:

python - Django:用很少的字段实例初始化表单

javascript - django - 使用 javascript 将值插入文本字段

图像字段未更新的 Django 内联表单集

Django 的内联表单

python - 如何阻止这种级联删除在 Django 中发生?

django - 让Django管理员使用翻译后的字段名称

python - Django formset - 如何为 modelformset 中的每个表单提供不同的查询集

python - 如何过滤内联表单集中的下拉列表

Django,我删除了AnonymousUser,如何恢复

Django:使用urlresolver设置cookie路径