Podczas definiowania FormView klasę pochodną:Django FormView nie ma kontekstu formularz
class PrefsView(FormView):
template_name = "prefs.html"
form_class = MyForm # What's wrong with this?
def get(self,request):
context = self.get_context_data()
context['pagetitle'] = 'My special Title'
context['form'] = MyForm # Why Do I have to write this?
return render(self.request,self.template_name,context)
Spodziewałem linię context['form'] = MyForm
nie było potrzebne, ponieważ form_class
jest zdefiniowana, ale bez niego {{ form }}
nie jest przekazywana do szablonu.
Co robię źle?
Tak, to dobra rada, ale wciąż nie odpowiada na pytanie, dlaczego potrzebuję tej linii? W kilku przykładach widzę zamiast tego użycie klasy form_klasy. – tonjo
W praktyce mówisz, że definiowanie 'klasy_tekstowej' jest całkowicie oddzielne od włączenia instancji do szablonu. Więc może nie w pełni to rozumiałem, do jakiego celu należy zdefiniować 'form_class'? – tonjo
Nie * potrzebujesz * tej linii, jeśli nie przesłonisz 'get'. Jeśli to zrobisz, uniemożliwisz domyślną implementację z dołączeniem formularza, więc oczywiście musisz to uwzględnić samodzielnie. –