Этот вид не отправляет форму. Я не знаю почему. Я вижу, что он не отправляет форму, потому что я печатаю context
в конце функции get_context_data
.Django CreateView не отправляет форму
class CrearFeralSpirit(CreateView):
template_name = "hisoka/crear_feral_spirit.html"
model = FeralSpirit
fields = ['tipo', 'nombre', 'url']
def form_valid(self, form):
fireball = Fireball.objects.get(slug=self.kwargs.get('slug'))
form.instance.fireball = fireball
return super(CrearFeralSpirit, self).form_valid(form)
def get_context_data(self, *args, **kwargs):
context = super(CrearFeralSpirit, self).get_context_data()
fireball = Fireball.objects.get(slug=self.kwargs['slug_fireball'])
context['fireball'] = fireball
print context # Here I print the context, no form in it.
return context
Не следует ли передавать символы '* args' и' * kwargs' в родительский класс, когда вы называете 'super'? 'context = super (CrearFeralSpirit, self) .get_context_data (* args, ** kwargs)' –
Правда, спасибо, это сработало. Если вы хотите, вы можете написать ответ, и я приму его. Также .... Я не понимаю, почему это сработало, когда я называю 'super', он вызывает' get_context_data' без 'args' и' kwargs', но зачем ему нужны 'args' и' kwargs 'в первую очередь? Разве это уже не форма? В какой момент «форма» добавляется в «контекст». Я запутался. : P – alejoss
Я обновил ответ. Я не мог проверить, что django делает именно с этими параметрами, я могу обновить свой ответ позже, когда у меня есть доступ к чему-то. –