특정 사용자에 대해 formset을 표시하려고합니다.'User'객체에는 formset에 'get'속성이 없습니다 (사용자를 쿼리 세트로 가져 오기)
사용자가 '의료 탭'에있는 경우 사용자의 각 부양 가족을위한 작은 양식 (확인란 및 텍스트 상자)이 표시되어야합니다. 내 views.py
에서
나는이 있습니다
내forms.py
에서
def get_dep_form(benefit_tab, user):
if benefit_tab == 'medical':
DepMedFormSet = formset_factory(DependentMedicalBenefitForm)
link_formset = DepMedFormSet(user)
else:
return None
return link_formset
내가 가진이 :
내views.py
이 같은 형태 얻고에서
class DependentMedicalBenefitForm(forms.ModelForm):
has_medical = forms.BooleanField()
med_group_id = forms.CharField(max_length=10)
class Meta:
model = Dependent
fields = [
'has_medical', 'med_group_id'
]
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user')
queryset = Dependent.objects.filter(employee=self.user)
super(DependentMedicalBenefitForm, self).__init__(*args, **kwargs)
self.fields['has_medical'].queryset = queryset
self.fields['med_group_id'].queryset = queryset
:
def index(request, benefit_tab=None):
#stuff
if benefit_tab:
link_formset = get_dep_form(benefit_tab, request.user)
return render(request, 'benefits/index.html', {
#stuff
'link_formset': link_formset,
})
을
오류가 발생했습니다 : 'User' object has no attribute 'get'
사용자를 전달하지 않고 init 함수를 주석 처리하면 하나의 확인란과 텍스트 상자가 예상대로 표시되지만 사용자를이 방법으로 전달하면 작동하지 않는 이유를 알 수 없습니다.
보너스 포인트 : formset에 각각의 데이터를 미리 채우는 방법을 알고 있다면 - 다음 번에 'User'오류를 지나면됩니다.
색인을 잘못 복사 했습니까? 리턴 라인에는 들여 쓰기가 없습니다. 또한 오류를 제기하는 행을 좁히기 위해 수행 한 작업은 무엇입니까? – Acccumulation