Topic guide
Introduction to class-based views
… is worth noting that what your method returns is identical to what you return from a function-based view, namely some form of HttpResponse. This means that http shortcuts or TemplateResponse objects are valid to use inside a class-based view. While …
Topic guide
Using mixins with class-based views
Building up Django’s generic class-based views
The _detail part can be changed by setting template_name_suffix on a subclass to something else. (For instance, the generic edit views use _form for create and update views, and _confirm_delete for delete views.)
Topic guide
Using mixins with class-based views
First, let’s look at a naive attempt to combine DetailView with FormMixin to enable us to POST a Django Form to the same URL as we’re displaying an object using DetailView.
Topic guide
Models
FieldsRelationships
It doesn’t matter which model has the ManyToManyField, but you should only put it in one of the models – not both. Generally, ManyToManyField instances should go in the object that’s going to be edited on a form.
Topic guide
Creating forms from models
Model formsets
As with regular formsets, you can use the max_num and extra parameters to modelformset_factory() to limit the number of extra forms displayed.
Topic guide
Time zones
Concepts
Most websites that care about time zones ask users in which time zone they live and store this information in the user’s profile. For anonymous users, they use the time zone of their primary audience or UTC.
Topic guide
Translation
Internationalization: in template code
… within the translation block. Examples: You can use multiple expressions inside a single blocktranslate tag: NOTE: The previous more verbose format is still supported: > {% blocktranslate with book|title as book_t and author|title as author_t %} Other block tags (for …
Topic guide
Translation
Localization: how to create language files
NOTE: If you’re using Windows and need to install the GNU gettext utilities so > makemessages works, see gettext on Windows for more > information.
Topic guide
Testing tools
The test client
Use the django.test.Client class to make requests. classClient(enforce_csrf_checks=False,raise_request_exception=True,json_encoder=DjangoJSONEncoder,*,headers=None,query_params=None,**defaults)[source] : A testing HTTP client. Takes several arguments that can customize behavior.
Topic guide
Testing tools
The test client
After you call this method, the test client will have all the cookies and session data required to pass any login-based tests that may form part of a view.
Topic guide
Testing tools
Provided test case classes
classTestCase[source] This is the most common class to use for writing tests in Django. It inherits from TransactionTestCase (and by extension SimpleTestCase). If your Django application doesn’t use a database, use SimpleTestCase.
Topic guide
Testing tools
Provided test case classes
… time. In particular, this means that in some cases > (for example, just after clicking a link or submitting a form), you might > need to check that a response is received by Selenium and that the next > page …
Topic guide
Testing tools
Test cases features
… | | --- | --- | | USE_TZ, TIME_ZONE | Databases timezone | | TEMPLATES | Template engines | | FORM_RENDERER | Default renderer | | SERIALIZATION_MODULES | Serializers cache | | LOCALE_PATHS, LANGUAGE_CODE | Default translation and loaded translations …
Topic guide
Testing tools
Test cases features
SimpleTestCase.assertWarnsMessage(expected_warning,expected_message,callable,*args,**kwargs)[source] SimpleTestCase.assertWarnsMessage(expected_warning, expected_message) : Analogous to SimpleTestCase.assertRaisesMessage() but for assertWarnsRegex() instead of assertRaisesRegex(). SimpleTestCase.assertFieldOutput(fieldclass,valid,invalid,field_args=None,field_kwargs=None,empty_value='')[source] : Asserts that a form field behaves correctly with various inputs. SimpleTestCase.assertFormError(form,field,errors,msg_prefix='')[source] : Asserts that a field on a form raises the provided list of errors.
Index
… backends.smtp.EmailBackend (class in django.core.mail) - BadRequest - bands (GDALRaster attribute) - base36_to_int() (in module django.utils.http) - base_field (ArrayField attribute) - (django.contrib.postgres.forms.BaseRangeField attribute) - (RangeField attribute) - (SimpleArrayField attribute) - (SplitArrayField attribute) - base_layer (BaseGeometryWidget attribute) - (OpenLayersWidget attribute) - (OSMWidget …
Index
… - teardown_databases() (DiscoverRunner method) - (in module django.test.utils) - teardown_test_environment() (DiscoverRunner method) - (in module django.test.utils) - TelInput (class in django.forms) - tell() (HttpResponse method) - template - (Aggregate attribute) - Template (class in django.template) - template (Func attribute) - …
Reference
Form fields
Each Field class constructor takes at least these arguments. Some Field classes take additional, field-specific arguments, but the following should always be accepted:
Reference
Form fields
Core field arguments
Field.widget The widget argument lets you specify a Widget class to use when rendering this Field. See Widgets for more information.
Reference
Form fields
Core field arguments
By default this value is set to "django/forms/field.html". Can be changed per field by overriding this attribute or more generally by overriding the default template, see also Overriding built-in field templates.
Reference
Form fields