Advertisement
Guest User

dwach-pomogach

a guest
Mar 9th, 2017
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.92 KB | None | 0 0
  1. # models.py
  2.  
  3. class Book(models.Model):
  4.  
  5.     name = models.CharField(max_length=200)
  6.     coverpic = models.ImageField(upload_to='images/', default='images/default_book_pic.png')
  7.     coverpic_small = ImageSpecField(source='coverpic', processors=[ResizeToFill(100, 100)], format='JPEG', options={'quality': 60}) #это говно от django-imagekit
  8.     pub_date = models.DateField()
  9.     approve_date = models.DateTimeField(auto_now_add=True)      # date of applying book on this site
  10.     genre = models.ForeignKey(Genre, on_delete=models.PROTECT)
  11.     author = models.ForeignKey(Author, on_delete=models.PROTECT)
  12.  
  13.     def __str__(self):
  14.         return self.name
  15.  
  16. # forms.py
  17. class BookForm(ModelForm):
  18.     class Meta:
  19.         model = Book
  20.         fields = ['name', 'pub_date', 'genre', 'author', 'coverpic']
  21.  
  22.  
  23. # views.py
  24.  
  25. def edit_book(request, book_id):
  26.     params = {}
  27.     params.update(csrf(request))
  28.     params['book'] = Book.objects.get(id=book_id)
  29.     params['form'] = BookForm(instance=params['book'])
  30.     params['action'] = "/store/book/" + book_id + "/edit_book/"
  31.     params['button_value'] = "Update Book"
  32.     if request.POST:
  33.         editbook_form = BookForm(request.POST, instance=params['book'])
  34.         if editbook_form.is_valid():
  35.             editbook_form.save()
  36.             return redirect("/store/book/" + book_id + "")
  37.         else:
  38.             params['form'] = editbook_form
  39.     else:
  40.         return render(request,
  41.                       template_name='store/add_edit_form.html',
  42.                       context=params)
  43.  
  44.  
  45. # add_edit_form.html
  46.  
  47. {% extends 'base.html' %}
  48. {% block add_content %}
  49.     <div class="large-offset-3 large-6 columns">
  50.         <form action={{ action }} method="POST" enctype='multipart/form-data'>
  51.             {% csrf_token %}
  52.             {{ form }}
  53.             <input class="button" type="submit" value="{{ button_value }}">
  54.         </form>
  55.     </div>
  56. {% endblock %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement