Sdf
Sdf
Efficiency: Reduces the amount of boilerplate code needed for common tasks.
List view : ListView is a generic view used to display a list of objects from a par cular model.
Detail view : ListView is a generic view used to display a de als of single objects from a par cular
model.
Create View : CreateView is a generic view used to handle the crea on of a new object.
Update View : UpdateView is a generic view used to handle the upda ng of an exis ng object.
Delete view : DeleteView is a generic view used to handle the dele on of an object.
class MyListView(ListView):
model = Project
template_name = 'myapp/MyListView.html'
class MyDetailView(DetailView):
model = Project
template_name = 'myapp/MyDetailView.html'
class MyCreateView(CreateView):
model = Project
template_name = 'myapp/MyCreateView.html'
class MyUpdateView(UpdateView):
model = Project
template_name = 'myapp/MyUpdateView.html'
class MyDeleteView(DeleteView):
model = Project
template_name = 'myapp/MyDeleteView.html'
url configura on
urlpa erns = [
path('ListView/',MyListView_as.view()),
path('ListView/',MyDetailView_as.view()),
path('ListView/',MyCreateView_as.view()),
path('ListView/',MyUpdateView_as.view()),
path('ListView/',MyDeleteView_as.view()),
]
EXTENDING GENERIC VIEWS
Overriding A ributes
class StudentListView(ListView):
model = Student
template_name = 'student/student_list.html'
context_object_name = 'students'
Overriding Methods
class StudentListView(ListView):
model = Student
def get_queryset(self):
Using Mixins
model = Student
template_name = 'students/student_detail.html'
login_url = '/login/'
class StudentListView(ListView):
model = Student
models.py
class Student(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
enrollment_date = models.DateField()
def __str__(self):
views.py
class MyListView(ListView):
model = Student
template_name = 'dist.html'
class MyDetailView(DetailView):
model = Student
template_name = 'detail.html'
url.py
urlpa erns = [
path('students/', MyListView.as_view()),
path('students/<int:pk>/', MyDetailView.as_view()),
list.html
<html>
<body>
<h1>Student List</h1>
<ul>
<li>
{% endfor %}
</ul>
</body>
</html>
detail.html
<html>
<body>
</body>
</html>
SYNDICATION FEED
Django’s syndica on framework allows you to create feeds that can be consumed by RSS or Atom
readers.
The framework handles the genera on of the XML for the feed, so you don’t need to deal with XML
genera on manually.
models.py :
class Post(models.Model):
tle = models.CharField(max_length=200)
content = models.TextField()
def __str__(self):
feeds.py
class PostsFeed(Feed):
def items(self):
return Post.objects.order_by('-pub_date')[:5]
return item.content
return f"/posts/{item.pk}/"
Configure URLs
urlpa erns = [
path('feeds/posts/', PostsFeed()),
item_descrip on() : Provides the descrip on/content for each feed item.
class PostSitemap(Sitemap):
def items(self):
return Post.objects.all()
return obj.updated_at
return 'weekly'
return 0.7