summaryrefslogtreecommitdiff
path: root/docs/internals/contributing/writing-code
diff options
context:
space:
mode:
Diffstat (limited to 'docs/internals/contributing/writing-code')
-rw-r--r--docs/internals/contributing/writing-code/submitting-patches.txt19
1 files changed, 19 insertions, 0 deletions
diff --git a/docs/internals/contributing/writing-code/submitting-patches.txt b/docs/internals/contributing/writing-code/submitting-patches.txt
index 9844d5e2c7..75186111dd 100644
--- a/docs/internals/contributing/writing-code/submitting-patches.txt
+++ b/docs/internals/contributing/writing-code/submitting-patches.txt
@@ -317,6 +317,25 @@ utilities, such as a ``@deprecate_posargs`` decorator to assist with converting
positional-or-keyword arguments to keyword-only. See the inline documentation
in the module source.
+Testing with a Django project
+=============================
+
+It's important to test local changes using a Django project. This allows
+ensuring that the changes behave as expected in a real environment, especially
+for user-facing features such as templates, forms, or the admin.
+
+To do this:
+
+#. Create a virtual environment and :ref:`install the cloned copy of Django in
+ editable mode <intro-contributing-install-local-copy>`.
+
+#. Set up a Django project outside the source tree (you can use the :doc:`first
+ part of the tutorial </intro/tutorial01>` for guidance).
+
+With this setup, any changes made to the Django checkout will take effect
+immediately in the test project, allowing manual testing of contributions
+against a new or existing app.
+
JavaScript contributions
========================