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

Ron*_*Ron 2 django django-forms inline-formset

我面临着一个非常具有挑战性的挑战:

我需要inlineformset_factory将我的计算机连接ParentEntity到我的外键绑定ChildEntities

My ChildEntity包含一个外键关系,我需要过滤每个登录用户-所以我需要在中的请求ChildForm

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

  • 我尝试使用form=kwarg,但无法传递实例-只是一个类。因此,我无法在此处添加请求。
  • 我尝试使用formset=kwarg,但是当我尝试通过request=request作为kwarg时,inlineformset_factory出现错误(意外的kwarg)

知道我能做什么吗?

谢谢!罗恩

Ron*_*Ron 5

有时问一个同事甚至比StackOverflow:) 更快

这是我的解决方案:

表格

class BaseFormSet(BaseInlineFormSet):

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

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

    super(BaseFormSet, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

  • 您能够在ChildForm中获得请求吗? (2认同)