2012-12-18 41 views
1

我想通過django中的templatetag呈現表單,以便我可以在多個頁面上呈現表單。但是,當我嘗試呈現它時,出現以下錯誤:通過TemplateTag呈現Django表格

_ init_()至少需要2個參數(給出1個參數)。

從模板標籤不會將用戶信息傳遞到表單,我相信這會出現。經過身份驗證的用戶應該是傳遞給表單的用戶。

Forms.py:

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的.py:

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

我怎麼會去用戶傳遞到形式通過templatetag?謝謝:)

+0

根據你的__init__你應該將用戶傳遞給窗體:ExpressionForm(user) – AmirW

+0

現在完美工作,謝謝:) – iranana

回答