2012-12-18 2 views
1

django의 templatetag를 통해 폼을 렌더링하려고하므로 여러 페이지에 폼을 렌더링 할 수 있습니다. 그러나 그것을 렌더링하려고하면 다음 오류가 발생합니다.TemplateTag를 통해 Django 폼 렌더링하기

_ init_()는 적어도 2 개의 인수 (주어진 1 개)를 사용합니다.

이것은 templatetag에서 사용자 정보를 양식으로 전달하지 않는다고 생각합니다. 인증 된 사용자는 양식에 전달 된 사용자 여야합니다.

Forms.py :

@register.inclusion_tag('expressions/templatetags/express.html') 
def express(): 
    return {'form': ExpressionForm()} 

가 어떻게이 templatetag을 통해 형태로 사용자를 통과 가겠어요 :

class ExpressionForm(forms.ModelForm): 
    class Meta(object): 
     model = Expression 
     exclude = ('user',) 

    body = forms.CharField(widget=forms.Textarea(attrs={'rows': 2, 'cols': 19}), required=False, label=_('Body')) 

    def __init__(self, user, *args, **kwargs): 
     super(ExpressionForm, self).__init__(*args, **kwargs) 
     self.fields['expressiontype'].queryset = ExpressionType.objects.all() 
     self.fields['expressiontype'].required = True 

그리고 내 templatetag의 평에

? 고마워요 :)

+0

에 따라 __init__ 사용자에게 양식을 전달해야합니다. ExpressionForm (user) – AmirW

+0

이제 완벽하게 작동합니다. 감사합니다 :) – iranana

답변

관련 문제