複数のページでフォームをレンダリングできるように、django の templatetag を使用してフォームをレンダリングしようとしています。ただし、レンダリングしようとすると、次のエラーが発生します。
_ 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
そして、私のテンプレートタグ.pyで:
@register.inclusion_tag('expressions/templatetags/express.html')
def express():
return {'form': ExpressionForm()}
templatetag を介してユーザーをフォームに渡すにはどうすればよいですか? ありがとう :)