2015-12-26 1 views
1

Этот вид не отправляет форму. Я не знаю почему. Я вижу, что он не отправляет форму, потому что я печатаю 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 
+1

Не следует ли передавать символы '* args' и' * kwargs' в родительский класс, когда вы называете 'super'? 'context = super (CrearFeralSpirit, self) .get_context_data (* args, ** kwargs)' –

+0

Правда, спасибо, это сработало. Если вы хотите, вы можете написать ответ, и я приму его. Также .... Я не понимаю, почему это сработало, когда я называю 'super', он вызывает' get_context_data' без 'args' и' kwargs', но зачем ему нужны 'args' и' kwargs 'в первую очередь? Разве это уже не форма? В какой момент «форма» добавляется в «контекст». Я запутался. : P – alejoss

+1

Я обновил ответ. Я не мог проверить, что django делает именно с этими параметрами, я могу обновить свой ответ позже, когда у меня есть доступ к чему-то. –

ответ

1

Как я кладу в комментарии, вы забыли передать *args и **kwargs для родительского класса при вызове super, поэтому он должен быть:

context = super(CrearFeralSpirit, self).get_context_data(*args, **kwargs) 

*args и **kwargs являются параметры, определяемые django get_context_data, и они определенно используются внутри django. Если вы не передадите их родительскому классу, django - это недостаток определенной информации, которая необходима. Без них django не мог построить форму, поэтому ваш контекст не имеет никакой формы.

 Смежные вопросы

  • Нет связанных вопросов^_^