2012-03-08 2 views
1

formset을 inlineformset_factory으로 전달할 수 있다는 것을 알고 있으며 기본적으로 BaseInlineFormSet을 사용합니다. 또한 BaseInlineFormSet은 쿼리 세트를 매개 변수로 사용할 수 있음을 알고 있습니다. BaseInlineFormSet에 대한 요청에 따라 쿼리 세트를 전달할 수 있도록 점을 어떻게 연결합니까?inlineformset_factory에서 쿼리 세트를 BaseInlineFormSet으로 전달하는 방법

간단히 말해서 나는 이것을하고 싶다.

base_qs = Inline_model.objects.filter(user = self.request.user) 
factory_kwargs = { formset=BaseInlineFormSet(queryset=base_qs) } 
formset = inlineformset_factory(ModelA, Inline_model, **factory_kwargs()) 

어떤 도움

주시면 감사하겠습니다.

답변

1

FWIW 이것은 다음 방법을 사용하여 해결되었습니다. 나는 클래스 기반 뷰를 사용하고 django-extra-views package을 사용하는 것으로 옮겼다. 이것은 명백하게 내 자신의 쿼리 세트로 get_formset_kwargs 메소드를 오버라이드 할 수있었습니다.

class CompanyDetailView(InlineFormSetView): 
    """Details of the Company Page""" 
    model = Company 
    inline_model = CompanyDocument 
    fields=('document', 'description') 
    can_delete=True 
    extra = 1 

    def get_formset_kwargs(self): 
     """Limit the queryset to only those which I have""" 
     qs = CompanyDocument.objects.filter(company=self.request.user.company, 
              shared_company = self.object,) 
     kwargs = super(CompanyDetailView, self).get_formset_kwargs() 
     kwargs['queryset'] = qs 
     return kwargs 
관련 문제