0

django のジェネリック クラス ベースのビューのコンテキスト オブジェクト名を設定するのに苦労しています。

class FictiveCreateView(generic.CreateView):
    context_object_name = 'fictive_form'
    form_class = forms.FictiveForm
    template_name = 'fictive/create_fictive.html'

    def get_context_data(self, **kwargs):
        context = super(generic.CreateView, self).get_context_data(**kwargs)
        print context

context_object_name = 'fictive_form'設定によってコンテキストオブジェクトの名前が変わると思いました。それは空のオブジェクトを与えるだけであることが判明しました:

{'fictive_form': None, 'form': <fictive.forms.FictiveForm object at 0x7f925807a9d0>, u'view': <fictive.views.FictiveCreateView object at 0x7f925807aa50>}

ここで何が欠けていますか?

4

1 に答える 1

0

あなたのcontext_object_nameモデルのためにそこにあります

class FictiveCreateView(generic.CreateView):
    context_object_name = 'fictive_form'
    form_class = forms.FictiveForm
    template_name = 'fictive/create_fictive.html'
    model = YourModel

    def get_context_data(self, **kwargs):
        context = super(generic.CreateView, self).get_context_data(**kwargs)
        print context

テンプレートでfictive_formは、YourModel のオブジェクトになりました

于 2013-06-11T14:47:56.657 に答える