Reference
Built-in template tags and filters
Other tags and filters librariesstatic
… need more control over exactly where and how STATIC_URL is injected into the template, you can use the get_static_prefix template tag: There’s also a second form you can use to avoid extra processing if you need the value multiple times:
Reference
Unicode data
General string handlingUseful utility functions
… its input to a string. The encoding parameter specifies the input encoding. (For example, Django uses this internally when processing form input data, which might not be UTF-8 encoded.) The strings_only parameter, if set to True, will result in Python …
Topic guide
Using the Django authentication system
Access to view the “add” form and add an object is limited to users with the “add” permission for that type of object.
Topic guide
Using the Django authentication system
Authentication in web requestsLimiting access to logged-in users
permission_required(perm,login_url=None,raise_exception=False)[source] : It’s a relatively common task to check whether a user has a particular permission.
Topic guide
Using the Django authentication system
Authentication in web requestsAuthentication Views
This is a list with all the views django.contrib.auth provides. For implementation details see Using the views. classLoginView[source] : URL name: login
Topic guide
For full details, see the class-based views reference documentation. Introduction to class-based views Built-in class-based generic views Form handling with class-based views Using mixins with class-based views
Topic guide
Using mixins with class-based views
Avoid anything more complex
At this point it’s natural to reach for a Form to encapsulate the information sent from the user’s browser to Django.
Topic guide
Using mixins with class-based views
Avoid anything more complex
The number of subtle interactions between FormMixin and DetailView is already testing our ability to manage things. It’s unlikely you’d want to write this kind of class yourself.
Topic guide
Using mixins with class-based views
Avoid anything more complex
So why not do just that? We have a very clear division here: GET requests should get the DetailView (with the Form added to the context data), and POST requests should get the FormView. Let’s set up those views first.
Topic guide
Models
Fields
help_text : Extra “help” text to be displayed with the form widget. It’s useful for documentation even if your field isn’t used on a form. primary_key : If True, this field is the primary key for the model.
Topic guide
Models
FieldsRelationships
… you are using an intermediate model, you can also query on its attributes: If you need to access a membership’s information you may do so by directly querying the Membership model: Another way to access the same information is by …
Topic guide
Multiple databases
Django’s admin doesn’t have any explicit support for multiple databases.
Topic guide
Making queries
Retrieving objects
Field lookups are how you specify the meat of an SQL WHERE clause. They’re specified as keyword arguments to the QuerySet methods filter(), exclude() and get(). Basic lookups keyword arguments take the form field__lookuptype=value. (That’s a double-underscore).
Topic guide
Making queries
Retrieving objects
… equivalent: The use of pk isn’t limited to __exact queries – any query term can be combined with pk to perform a query on the primary key of a model: pk lookups also work across joins. For example, these three …
Topic guide
Making queries
Querying JSONField
… based on a given dictionary key, use that key as the lookup name: Multiple keys can be chained together to form a path lookup: If the key is an integer, it will be interpreted as an index transform in an …
Topic guide
Formsets
Initial data is what drives the main usability of a formset. As shown above you can define the number of extra forms.
Topic guide
Formsets
The absolute_max parameter to formset_factory() allows limiting the number of forms that can be instantiated when supplying POST data. This protects against memory exhaustion attacks using forged POST requests: When absolute_max is None, it defaults to max_num + 1000.
Topic guide
Formsets
Dealing with ordering and deletion of forms
BaseFormSet.can_order Default: False Lets you create a formset with the ability to order: This adds an additional field to each form. This new field is named ORDER and is an forms.IntegerField.
Topic guide
Formsets
Dealing with ordering and deletion of forms
BaseFormSet.can_delete Default: False Lets you create a formset with the ability to select forms for deletion: Similar to can_order this adds a new field to each form named DELETE and is a forms.BooleanField.
Topic guide
Formsets
Dealing with ordering and deletion of forms
If you call formset.save(commit=False), objects will not be deleted automatically.