python 3.x - Django blog post doesn't update it just creates another object -


this view supposed find blog post , change it's information, instead of makes new blog object new (and old) information.

the update view

@login_required def view_updatepost(request, blog_id):     if not request.user.is_staff or not request.user.is_superuser:         raise http404      #post = blog.objects.get(pk=blog_id)     post_to_be_changed = get_object_or_404(blog, pk=blog_id)     form = blogform(request.post or none, instance=post_to_be_changed)      if form.is_valid():         post_to_be_changed = form.save(commit=false)     #     #         post_to_be_changed.save()     #messages.success(request, "<a href='#'>item</a> saved", extra_tags='html_safe')         return httpresponseredirect(post_to_be_changed.get_absolute_url())      context = {         'post_to_be_changed': post_to_be_changed,         'form': form,     }     return render(request, 'blog/makepost.html', context) 

the template used view makepost.html

{% extends "base.html" %} {% load staticfiles %}   {% block main_content %}   <!-- page header --> <!-- set background image header on line below. --> <header class="intro-header" style="background-image: url('{% static "img/about-bg.jpg" %}')">     <div class="container">         <div class="row">             <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">                 <div class="page-heading">                     <h1>make post</h1>                     <hr class="small">                     <span class="subheading">share world.</span>                 </div>             </div>         </div>     </div> </header>  <!-- main content --> <div class="container">     <div class="row">         <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">              {% if not user.is_authenticated %}                 must <u><a href="{% url "auth_login" %}">logged in</a></u> make post.             {% else %}              <form action="{% url "makepost" %}" method="post">             {% csrf_token %}              {{form.as_p}}             <div align="center">                 <input class="btn btn-default" type="submit" value="post blog" onclick="window.location='{% url "" %}';"/>                 {# <a href="{% url "" %}">home</a> #}             </div>         </form>               {% endif %}         </div>     </div> </div>  <hr>   {% endblock main_content %} 

the models.py

from django.db import models import datetime # create models here. class blog(models.model): title = models.charfield(max_length=250) subtitle = models.charfield(max_length=250, null = true, blank=true) date_added = models.datetimefield(default=datetime.datetime.now()) image = models.textfield(max_length=1000, null = true, blank=true) tags = models.textfield(max_length=500, null=true, blank=true) article = models.textfield(max_length=15000, null=true, blank=true) author = models.charfield(max_length=150, null=true, blank=true)  def get_absolute_url(self):     return "/blog/%i" % self.pk 

the forms.py

from django import forms .models import blog import datetime  class postform(forms.form):     title = forms.charfield()     subtitle = forms.charfield(required=false)     date_added = forms.datetimefield()     image = forms.urlfield(required=false)     tags = forms.charfield(required=false)     article = forms.charfield()     author = forms.charfield()  class blogform(forms.modelform):     class meta:         model = blog         fields = ('title', 'subtitle',                     'image', 'tags',  'article') 

it seems not referring update view in form action url:

<form action="{% url **"makepost"** %}" method="post"> 

Comments

Popular posts from this blog

ruby - Trying to change last to "x"s to 23 -

jquery - Clone last and append item to closest class -

c - Unrecognised emulation mode: elf_i386 on MinGW32 -