1. Models.py
from django.db import models
from django.urls import reverse
from django.contrib.auth.models import User
class Movies(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
genre = models.CharField(max_length=200)
def __unicode__(self):
return self.title
def get_absolute_url(self):
return reverse('CRUD_FBVs:movies_edit', kwargs={'pk': self.pk})
2. Admin.py
from django.contrib import admin
from .models import Movies
admin.site.register(Movies)
3. Forms.py
from django import forms
from .models import Movies
class MoviesForm(forms.ModelForm):
class Meta:
model = Movies
fields = ['title', 'genre']
Function-Based Views
4. Views.py - Function-Based Views
5 Urls.py - Function-Based Views
from django.conf.urls import url
from django.contrib import admin
from CRUD_FBVs import views
app_name = 'CRUD_FBVs'
urlpatterns = [
url('admin/', admin.site.urls),
url(r'^$', views.movies_list, name='movies_list'),
url(r'^new$', views.movies_create, name='movies_new'),
url(r'^edit/(?P\d+)$', views.movies_update, name='movies_edit'),
url(r'^delete/(?P\d+)$', views.movies_delete, name='movies_delete'),
]
Class-Based Views
4. Views.py - Class-Based Views
from django.views.generic import ListView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.urls import reverse_lazy
from CRUD_CBVs.models import Movies
class MoviesList(ListView):
model = Movies
class MoviesCreate(CreateView):
model = Movies
fields = ['title', 'genre']
success_url = reverse_lazy('CRUD_CBVs: movies_list')
class MoviesUpdate(UpdateView):
model = Movies
fields = ['title', 'genre']
success_url = reverse_lazy('CRUD_CBVs: movies_list')
class MoviesDelete(DeleteView):
model = Movies
success_url = reverse_lazy('CRUD_CBVs: movies_list')
5. Urls.py - Class-Based Views
from django.conf.urls import url
from django.contrib import admin
from CRUD_CBVs import views
app_name = 'CRUD_CBVs'
urlpatterns = [
url('admin/', admin.site.urls),
url('', views.MoviesList.as_view(), name='movies_list'),
url(r'^new$', views.MoviesCreate.as_view(), name='movies_new'),
url(r'^edit/(?P\d+)$', views.MoviesUpdate.as_view(), name='movies_edit'),
url(r'^delete/(?P\d+)$', views.MoviesDelete.as_view(), name='movies_delete'),
]
6. Templates
Movie_list.html
CRUD Function Based View Example
{% for movies in object_list %}
- {{ movies.title }} {{ movies.genre }}
edit
delete
{% endfor %}
Add
Movies_form.html
CRUD Function Based View Example
Confirm_delete.html
CRUD Function Based View Example
https://www.c-sharpcorner.com/article/crud-operations-in-django