2016-03-17 2 views
0

Я основывал вид функцию которой выводит формы, но когда я пытаюсь сделать это в основе зрения классане может видеть любую форму на странице и нет никакой ошибки слишкомДжанго не может отобразить форму на основе зрения класса

функции, основанного вид

def edit_post(request,id): 

    posts=Post.objects.get(id=id) 
    forms = PostForm 
    if request.method == 'POST': 
     form = PostForm(request.POST, instance=posts) 
     print form 
     if form.is_valid(): 
      uncommit = form.save(commit=False) 

      form.save() 
      return redirect("home") 
     else: 
      print form.errors 
    else: 
     form = PostForm() 
    return render(request, "edit_post.html", {'forms': forms,'posts':posts}) 

класса основан вид

class CourseEntryCreateView(CreateView): 
    form_class = PostForm 
    model = Post 
    template_name = 'edit_post.html' 

    def dispatch(self, *args, **kwargs): 
     self.course = get_object_or_404(Post, pk=kwargs['id']) 
     return super(CourseEntryCreateView, self).dispatch(*args, **kwargs) 

    def form_valid(self, form): 
     self.object = form.save(commit=False) 
     # self.object.course = self.course 
     self.object.save() 
     return HttpResponseRedirect(self.get_success_url()) 

Im все еще учится Джанго, если какие-либо изменения быть сделаны на основе зрения класса, пожалуйста, дай мне знать

любой помощи ..Thanks в advace

+0

, пожалуйста, покажите содержимое вашего файла 'edit_post.html'. В представлении на основе класса ваша форма будет называться 'form', а не' forms'. –

ответ

1

Вашей функция основано вид смущен, потому что он использует две переменные form и forms. Вы должны изменить его, чтобы использовать только form. Затем обновите свой шаблон, чтобы использовать {{ form }} вместо {{ forms }}.

После того, как вы исправили шаблон, форма должна отображаться в шаблоне. Если вы редактируете существующие объекты, вы должны использовать UpdateView вместо CreateView. Вам не нужно переопределять dispatch или form_value, там обычно лучше подходят подходы.

+0

Спасибо за помощь ............ – Coeus

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