Skip to content

Instantly share code, notes, and snippets.

@dafma
Last active January 21, 2016 19:25
Show Gist options
  • Save dafma/c171a9a75562778f2476 to your computer and use it in GitHub Desktop.
Save dafma/c171a9a75562778f2476 to your computer and use it in GitHub Desktop.
####views
from django.shortcuts import render, redirect, get_object_or_404
from django.forms import ModelForm
from books_fbv.models import Book
class BookForm(ModelForm):
class Meta:
model = Book
fields = ['name', 'pages']
def book_list(request, template_name='books_fbv/book_list.html'):
book = Book.objects.all()
data = {}
data['object_list'] = book
return render(request, template_name, data)
def book_create(request, template_name='books_fbv/book_form.html'):
form = BookForm(request.POST or None)
if form.is_valid():
form.save()
return redirect('books_fbv:book_list')
return render(request, template_name, {'form':form})
def book_update(request, pk, template_name='books_fbv/book_form.html'):
book= get_object_or_404(Book, pk=pk)
form = BookForm(request.POST or None, instance=book)
if form.is_valid():
form.save()
return redirect('books_fbv:book_list')
return render(request, template_name, {'form':form})
def book_delete(request, pk, template_name='books_fbv/book_confirm_delete.html'):
book= get_object_or_404(Book, pk=pk)
if request.method=='POST':
book.delete()
return redirect('books_fbv:book_list')
return render(request, template_name, {'object':book})
####models.py
from django.db import models
from django.core.urlresolvers import reverse
class Book(models.Model):
name = models.CharField(max_length=200)
pages = models.IntegerField()
def __unicode__(self):
return self.name
def get_absolute_url(self):
return reverse('books_fbv:book_edit', kwargs={'pk': self.pk})
##urls
from django.conf.urls import patterns, url
from books_fbv import views
urlpatterns = patterns('',
url(r'^$', views.book_list, name='book_list'),
url(r'^new$', views.book_create, name='book_new'),
url(r'^edit/(?P<pk>\d+)$', views.book_update, name='book_edit'),
url(r'^delete/(?P<pk>\d+)$', views.book_delete, name='book_delete'),
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment