buraq.views — API Reference
from buraq.views import ViewBase class for all class-based views.
Class attributes
Section titled “Class attributes”| Attribute | Default | Description |
|---|---|---|
http_method_names |
all methods | Allowed HTTP methods |
Methods
Section titled “Methods”| Method | Description |
|---|---|
View.as_view(**initkwargs) |
Returns an async function for URL registration |
await self.dispatch(request, **kwargs) |
Routes to the correct method handler |
await self.http_method_not_allowed(request) |
Returns 405 |
await self.options(request) |
Returns 200 with Allow header |
Generic Views
Section titled “Generic Views”TemplateView
Section titled “TemplateView”from buraq.views.generic import TemplateView
class HomeView(TemplateView): template_name = "home.html" extra_context = {"title": "Home"}ListView
Section titled “ListView”class PostListView(ListView): model = Post # required (or override get_queryset) template_name = "list.html" paginate_by = None # int to enable pagination ordering = None # list of field names page_kwarg = "page" # query param name for page number allow_empty = True # allow empty list (default: True)Template context: object_list, <model_name>_list, paginator, page_obj, is_paginated
DetailView
Section titled “DetailView”class PostDetailView(DetailView): model = Post template_name = "detail.html" pk_url_kwarg = "pk" # URL param name slug_url_kwarg = "slug" slug_field = "slug" # model field to match slug against context_object_name = None # override default (model name lowercased)Template context: object, <model_name>
CreateView
Section titled “CreateView”class PostCreateView(CreateView): model = Post form_class = PostForm # required template_name = "form.html" success_url = "/posts/" # requiredUpdateView
Section titled “UpdateView”class PostUpdateView(UpdateView): model = Post form_class = PostForm template_name = "form.html" success_url = "/posts/" pk_url_kwarg = "pk"DeleteView
Section titled “DeleteView”class PostDeleteView(DeleteView): model = Post template_name = "confirm_delete.html" success_url = "/posts/"RedirectView
Section titled “RedirectView”class OldUrlRedirect(RedirectView): url = "/new-url/" permanent = False # 302 (True = 301)Mixins
Section titled “Mixins”| Mixin | Provides |
|---|---|
ContextMixin |
async get_context_data(**kwargs) |
TemplateMixin |
get_template_name() |
SingleObjectMixin |
async get_object(), get_context_object_name() |
MultipleObjectMixin |
async get_queryset(), async paginate_queryset() |
FormMixin |
get_form(), get_initial(), get_success_url(), async form_valid(), async form_invalid() |