views
management.views
¤
Classes¤
CustomCreateView
¤
Bases: URLMixin
, LoginRequiredMixin
, CreateView
Generic create view.
This view is used to create a new model object. The user must have the permission to create the object, otherwise a 403 error is returned.
The view includes a form with the object data, and the context includes the title of the view and the URL to the list view.
If provided, the foreign_key_fields
attribute is used to limit the queryset for
foreign key fields.
If successful, the view redirects to the detail view of the created object.
Users need to be logged in to access this view.
Attributes:
Name | Type | Description |
---|---|---|
template_name |
str
|
Template to be used. |
Functions¤
form_valid(form)
¤
Set the owner of the object to the current user.
This is done before saving the object to the database.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
form |
ModelForm
|
Form with the object data. |
required |
Returns:
Name | Type | Description |
---|---|---|
HttpResponse |
HttpResponse
|
Redirect to the detail view of the created object. |
Source code in management\views.py
346 347 348 349 350 351 352 353 354 355 356 357 358 |
|
get_form_kwargs()
¤
Add the user to the form kwargs, so we can filter the options.
Source code in management\views.py
384 385 386 387 388 |
|
CustomDeleteView
¤
Bases: URLMixin
, LoginRequiredMixin
, DeleteView
Generic delete view.
This view is used to delete a model object. The user must have the permission to delete the object, otherwise a 403 error is returned. A confirmation page is shown with the related objects that will be deleted.
The permissions required to delete the object are app_label.delete_model_name
. For
example, the permission required to delete a DataImport
object would be
importing.delete_dataimport
.
If successful, the view redirects to the list view.
Users need to be logged in to access this view.
Attributes:
Name | Type | Description |
---|---|---|
template_name |
str
|
Template to be used. |
CustomDetailView
¤
Bases: URLMixin
, LoginRequiredMixin
, DetailView
Generic detail view.
This view is used to show the details of a model object. The user must have the permission to view the object, otherwise a 403 error is returned.
The view includes a form with the object data, and the context includes the URLs for the list, delete, and edit views.
The permissions required to view the object are app_label.view_model_name
. For
example, the permission required to view a DataImport
object would be
importing.view_dataimport
.
Users need to be logged in to access this view.
Attributes:
Name | Type | Description |
---|---|---|
template_name |
str
|
Template to be used. |
fields |
str
|
Fields to be shown in the form. |
Functions¤
get_inline()
¤
Return the inline data for the format.
If provided, this method should return a dictionary with the inline data to be shown in the detail view. The dictionary should have the following keys:
- title: Title of the inline data.
- header: List with the header of the table.
- objects: List with the objects to be shown in the table. Each object should be a list with the same length as the header.
Returns:
Type | Description |
---|---|
dict | None
|
dict | None: Inline data for the format. |
Source code in management\views.py
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
|
CustomEditView
¤
Bases: URLMixin
, LoginRequiredMixin
, UpdateView
Generic edit view.
This view is used to edit a model object. The user must have the permission to edit the object, otherwise a 403 error is returned.
The view includes a form with the object data, and the context includes the title of the view and the URL to the list view.
The permissions required to edit the object are app_label.change_model_name
. For
example, the permission required to edit a DataImport
object would be
importing.change_dataimport
.
If successful or cancelled, the view redirects to the detail view of the created object.
Users need to be logged in to access this view.
Attributes:
Name | Type | Description |
---|---|---|
template_name |
str
|
Template to be used. |
Functions¤
get_form_kwargs()
¤
Add the user to the form kwargs, so we can filter the options.
Source code in management\views.py
284 285 286 287 288 |
|
CustomTableView
¤
Bases: URLMixin
, LoginRequiredMixin
, SingleTableMixin
, FilterView
This view is used to show a list of model objects.
The view includes a table with the objects, and the context includes the title of the view, the refresh URL, and the URL to create a new object.
The permissions required to view the objects are app_label.view_model_name
. For
example, the permission required to view a DataImport
object would be
importing.view_dataimport
.
If provided, the filter_class
attribute is used to create a filter form on top
of the table.
Users need to be logged in to access this view.
Attributes:
Name | Type | Description |
---|---|---|
model |
Model
|
Model to be used. |
table_class |
Table
|
Table class to be used. |
filterset_class |
FilterSet
|
Filter class to be used. If not provided, the model's default filter is used. |
template_name |
str
|
Template to be used. |
paginate_by |
int
|
Number of objects per page. |
show_refresh_btn |
bool
|
If True, a refresh url is included in the context. |
show_new_btn |
bool
|
If True, a create url is included in the context. |
Functions¤
get_filterset_class()
¤
Return the filter class for the view.
If no filter class is provided in the view, the default filter for the model is
used. The default filter is created by the FilterSet
class, and includes only
the 'visibility'.
Source code in management\views.py
191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 |
|
CustomUserCreationForm
¤
Bases: UserCreationForm
SignUpView
¤
Bases: CreateView
URLMixin
¤
Mixin to add URLs to a view.
This mixin adds the URLs for the list, create, edit, and delete views to a view. The
URLs follow the pattern app_label:model_name_action
. For example, the list URL for
the DataImport
model would be importing:dataimport_list
.
Attributes:
Name | Type | Description |
---|---|---|
app_label |
str
|
Application label. |
model_name |
str
|
Model name. |
Functions¤
get_deleted_objects(objs)
¤
Return information about related objects to be deleted.
How to do this has been taken from https://stackoverflow.com/a/39533619/3778792
Parameters:
Name | Type | Description | Default |
---|---|---|---|
objs |
list[Model]
|
List of objects to be deleted. |
required |
Returns:
Type | Description |
---|---|
tuple[list[str], dict[str, int], list[str]]
|
tuple[list[str], dict[str, int], list[str]]: Tuple containing the following: - List of strings representing the objects to be deleted. - Dictionary containing the count of objects to be deleted for each model. - List of strings representing the objects that are protected from deletion |
Source code in management\tools.py
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
get_queryset(db_field, user)
¤
Return a queryset based on the permissions of the user.
Returns queryset of public objects and objects that the user has change permisions
for. For the case of Station
objects, having the change
permission is
necessary to include the object in the queryset - being Public
is not enough.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
db_field |
Field
|
Field to filter. |
required |
user |
Model
|
User to check permissions for. |
required |
Returns:
Type | Description |
---|---|
QuerySet
|
model.QuerySet: Queryset of objects that the user has permissions for. |
Source code in management\permissions.py
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|