├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── add-a-related-package.md │ ├── antipattern.md │ ├── difference-between.md │ ├── pattern.md │ └── troubleshooting.md └── workflows │ └── build-site.yml ├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── antipattern ├── a-get-request-with-side-effects.md ├── a-model-with-a-model-suffix.md ├── calling-all-before-count-or-filter.md ├── chaining-querysets-together.md ├── checking-if-an-object-is-created-with-instance-pk.md ├── checking-ownership-through-the-userpassestestmixin.md ├── checking-request-method-with-if-request-post.md ├── constructing-a-new-form-when-validation-fails.md ├── data-duplication.md ├── fetching-the-logged-in-user-with-a-query.md ├── fill-the-primary-key-gaps.md ├── filter-on-arbitrary-input-like-request-get.md ├── filtering-in-the-template.md ├── foreign-key-with-id-suffix.md ├── giving-related-name-the-same-name-as-the-relation.md ├── imports.md ├── manually-constructing-a-slug.md ├── modifying-slugs-and-primary-keys-of-model-objects.md ├── new_antipattern ├── non-atomic-jsonfield-s.md ├── over-use-of-values.md ├── passing-function-references-to-reverse.md ├── passing-parameters-directly-in-the-query-string-of-a-url.md ├── plural-model-class-names.md ├── processing-request-data-manually.md ├── refer-to-the-user-model-directly.md ├── rendering-content-after-a-successful-post-request.md ├── rendering-into-javascript.md ├── return-a-jsonresponse-with-safe-false.md ├── run-makemigrations-in-production.md ├── signals.md ├── template.md.tmp ├── use-datetime-now-as-default-for-a-created-on-field.md ├── use-get-to-retrieve-the-object-in-a-view.md ├── users-controlling-a-primary-key.md ├── using-a-floatfield-for-currencies.md ├── using-commit-false-when-altering-the-instance-in-a-modelform.md ├── using-len-on-a-queryset-with-no-further-use.md ├── using-multiple-forms-on-the-same-page-without-prefixing.md ├── using-regular-html-comments-instead-of-django-template-comments.md └── using-request-post-or-none.md ├── blog_articles ├── new_blog_article ├── new_blog_article.sh └── template.md.tmp ├── compare_templates.sh ├── continue.sh ├── difference-between ├── foreignkey-onetoonefield.md ├── new_difference-between ├── reverse-redirect.md └── template.md.tmp ├── install.sh ├── layers ├── media └── favicon.ico ├── new-item ├── pattern ├── a-default-record-per-entity.md ├── a-field-that-is-derived-from-another-field.md ├── a-set-delete-handler-with-the-object-as-parameter.md ├── annotate-a-condition-as-booleanfield.md ├── date-time-field-s-that-store-a-week-or-month.md ├── dictionary-lookups-for-the-database.md ├── match-multiple-strings-in-a-case-insensitive-manner.md ├── new_pattern ├── querying-in-the-opposite-direction.md ├── set-values-to-a-created-updated-object-in-a-class-based-view.md └── template.md.tmp ├── qa ├── how-do-calls-of-models-manager-and-custom-managers-work-.md ├── new_qa └── template.md.tmp ├── rewrite.sh ├── site ├── CNAME ├── script.js └── style.css ├── templates └── easy_template.html ├── toc.sh └── troubleshooting ├── a-certain-field-does-not-appear-in-the-migrations-and-in-the-database-table.md ├── can-not-extract-filter-a-date-time-field-when-time-zones-are-enabled.md ├── new_troubleshooting └── template.md.tmp /.github/FUNDING.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/.github/FUNDING.yml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/add-a-related-package.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/.github/ISSUE_TEMPLATE/add-a-related-package.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/antipattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/.github/ISSUE_TEMPLATE/antipattern.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/difference-between.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/.github/ISSUE_TEMPLATE/difference-between.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/.github/ISSUE_TEMPLATE/pattern.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/troubleshooting.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/.github/ISSUE_TEMPLATE/troubleshooting.md -------------------------------------------------------------------------------- /.github/workflows/build-site.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/.github/workflows/build-site.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/README.md -------------------------------------------------------------------------------- /antipattern/a-get-request-with-side-effects.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/a-get-request-with-side-effects.md -------------------------------------------------------------------------------- /antipattern/a-model-with-a-model-suffix.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/a-model-with-a-model-suffix.md -------------------------------------------------------------------------------- /antipattern/calling-all-before-count-or-filter.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/calling-all-before-count-or-filter.md -------------------------------------------------------------------------------- /antipattern/chaining-querysets-together.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/chaining-querysets-together.md -------------------------------------------------------------------------------- /antipattern/checking-if-an-object-is-created-with-instance-pk.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/checking-if-an-object-is-created-with-instance-pk.md -------------------------------------------------------------------------------- /antipattern/checking-ownership-through-the-userpassestestmixin.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/checking-ownership-through-the-userpassestestmixin.md -------------------------------------------------------------------------------- /antipattern/checking-request-method-with-if-request-post.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/checking-request-method-with-if-request-post.md -------------------------------------------------------------------------------- /antipattern/constructing-a-new-form-when-validation-fails.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/constructing-a-new-form-when-validation-fails.md -------------------------------------------------------------------------------- /antipattern/data-duplication.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/data-duplication.md -------------------------------------------------------------------------------- /antipattern/fetching-the-logged-in-user-with-a-query.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/fetching-the-logged-in-user-with-a-query.md -------------------------------------------------------------------------------- /antipattern/fill-the-primary-key-gaps.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/fill-the-primary-key-gaps.md -------------------------------------------------------------------------------- /antipattern/filter-on-arbitrary-input-like-request-get.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/filter-on-arbitrary-input-like-request-get.md -------------------------------------------------------------------------------- /antipattern/filtering-in-the-template.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/filtering-in-the-template.md -------------------------------------------------------------------------------- /antipattern/foreign-key-with-id-suffix.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/foreign-key-with-id-suffix.md -------------------------------------------------------------------------------- /antipattern/giving-related-name-the-same-name-as-the-relation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/giving-related-name-the-same-name-as-the-relation.md -------------------------------------------------------------------------------- /antipattern/imports.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/imports.md -------------------------------------------------------------------------------- /antipattern/manually-constructing-a-slug.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/manually-constructing-a-slug.md -------------------------------------------------------------------------------- /antipattern/modifying-slugs-and-primary-keys-of-model-objects.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/modifying-slugs-and-primary-keys-of-model-objects.md -------------------------------------------------------------------------------- /antipattern/new_antipattern: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/new_antipattern -------------------------------------------------------------------------------- /antipattern/non-atomic-jsonfield-s.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/non-atomic-jsonfield-s.md -------------------------------------------------------------------------------- /antipattern/over-use-of-values.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/over-use-of-values.md -------------------------------------------------------------------------------- /antipattern/passing-function-references-to-reverse.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/passing-function-references-to-reverse.md -------------------------------------------------------------------------------- /antipattern/passing-parameters-directly-in-the-query-string-of-a-url.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/passing-parameters-directly-in-the-query-string-of-a-url.md -------------------------------------------------------------------------------- /antipattern/plural-model-class-names.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/plural-model-class-names.md -------------------------------------------------------------------------------- /antipattern/processing-request-data-manually.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/processing-request-data-manually.md -------------------------------------------------------------------------------- /antipattern/refer-to-the-user-model-directly.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/refer-to-the-user-model-directly.md -------------------------------------------------------------------------------- /antipattern/rendering-content-after-a-successful-post-request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/rendering-content-after-a-successful-post-request.md -------------------------------------------------------------------------------- /antipattern/rendering-into-javascript.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/rendering-into-javascript.md -------------------------------------------------------------------------------- /antipattern/return-a-jsonresponse-with-safe-false.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/return-a-jsonresponse-with-safe-false.md -------------------------------------------------------------------------------- /antipattern/run-makemigrations-in-production.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/run-makemigrations-in-production.md -------------------------------------------------------------------------------- /antipattern/signals.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/signals.md -------------------------------------------------------------------------------- /antipattern/template.md.tmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/template.md.tmp -------------------------------------------------------------------------------- /antipattern/use-datetime-now-as-default-for-a-created-on-field.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/use-datetime-now-as-default-for-a-created-on-field.md -------------------------------------------------------------------------------- /antipattern/use-get-to-retrieve-the-object-in-a-view.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/use-get-to-retrieve-the-object-in-a-view.md -------------------------------------------------------------------------------- /antipattern/users-controlling-a-primary-key.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/users-controlling-a-primary-key.md -------------------------------------------------------------------------------- /antipattern/using-a-floatfield-for-currencies.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/using-a-floatfield-for-currencies.md -------------------------------------------------------------------------------- /antipattern/using-commit-false-when-altering-the-instance-in-a-modelform.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/using-commit-false-when-altering-the-instance-in-a-modelform.md -------------------------------------------------------------------------------- /antipattern/using-len-on-a-queryset-with-no-further-use.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/using-len-on-a-queryset-with-no-further-use.md -------------------------------------------------------------------------------- /antipattern/using-multiple-forms-on-the-same-page-without-prefixing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/using-multiple-forms-on-the-same-page-without-prefixing.md -------------------------------------------------------------------------------- /antipattern/using-regular-html-comments-instead-of-django-template-comments.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/using-regular-html-comments-instead-of-django-template-comments.md -------------------------------------------------------------------------------- /antipattern/using-request-post-or-none.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/antipattern/using-request-post-or-none.md -------------------------------------------------------------------------------- /blog_articles/new_blog_article: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/blog_articles/new_blog_article -------------------------------------------------------------------------------- /blog_articles/new_blog_article.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/blog_articles/new_blog_article.sh -------------------------------------------------------------------------------- /blog_articles/template.md.tmp: -------------------------------------------------------------------------------- 1 | %% %s 2 | 3 | -------------------------------------------------------------------------------- /compare_templates.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/compare_templates.sh -------------------------------------------------------------------------------- /continue.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/continue.sh -------------------------------------------------------------------------------- /difference-between/foreignkey-onetoonefield.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/difference-between/foreignkey-onetoonefield.md -------------------------------------------------------------------------------- /difference-between/new_difference-between: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/difference-between/new_difference-between -------------------------------------------------------------------------------- /difference-between/reverse-redirect.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/difference-between/reverse-redirect.md -------------------------------------------------------------------------------- /difference-between/template.md.tmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/difference-between/template.md.tmp -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sudo apt-get install pandoc yui-compressor 4 | -------------------------------------------------------------------------------- /layers: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/layers -------------------------------------------------------------------------------- /media/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/media/favicon.ico -------------------------------------------------------------------------------- /new-item: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/new-item -------------------------------------------------------------------------------- /pattern/a-default-record-per-entity.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/pattern/a-default-record-per-entity.md -------------------------------------------------------------------------------- /pattern/a-field-that-is-derived-from-another-field.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/pattern/a-field-that-is-derived-from-another-field.md -------------------------------------------------------------------------------- /pattern/a-set-delete-handler-with-the-object-as-parameter.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/pattern/a-set-delete-handler-with-the-object-as-parameter.md -------------------------------------------------------------------------------- /pattern/annotate-a-condition-as-booleanfield.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/pattern/annotate-a-condition-as-booleanfield.md -------------------------------------------------------------------------------- /pattern/date-time-field-s-that-store-a-week-or-month.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/pattern/date-time-field-s-that-store-a-week-or-month.md -------------------------------------------------------------------------------- /pattern/dictionary-lookups-for-the-database.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/pattern/dictionary-lookups-for-the-database.md -------------------------------------------------------------------------------- /pattern/match-multiple-strings-in-a-case-insensitive-manner.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/pattern/match-multiple-strings-in-a-case-insensitive-manner.md -------------------------------------------------------------------------------- /pattern/new_pattern: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/pattern/new_pattern -------------------------------------------------------------------------------- /pattern/querying-in-the-opposite-direction.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/pattern/querying-in-the-opposite-direction.md -------------------------------------------------------------------------------- /pattern/set-values-to-a-created-updated-object-in-a-class-based-view.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/pattern/set-values-to-a-created-updated-object-in-a-class-based-view.md -------------------------------------------------------------------------------- /pattern/template.md.tmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/pattern/template.md.tmp -------------------------------------------------------------------------------- /qa/how-do-calls-of-models-manager-and-custom-managers-work-.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/qa/how-do-calls-of-models-manager-and-custom-managers-work-.md -------------------------------------------------------------------------------- /qa/new_qa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/qa/new_qa -------------------------------------------------------------------------------- /qa/template.md.tmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/qa/template.md.tmp -------------------------------------------------------------------------------- /rewrite.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/rewrite.sh -------------------------------------------------------------------------------- /site/CNAME: -------------------------------------------------------------------------------- 1 | www.django-antipatterns.com 2 | -------------------------------------------------------------------------------- /site/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/site/script.js -------------------------------------------------------------------------------- /site/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/site/style.css -------------------------------------------------------------------------------- /templates/easy_template.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/templates/easy_template.html -------------------------------------------------------------------------------- /toc.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/toc.sh -------------------------------------------------------------------------------- /troubleshooting/a-certain-field-does-not-appear-in-the-migrations-and-in-the-database-table.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/troubleshooting/a-certain-field-does-not-appear-in-the-migrations-and-in-the-database-table.md -------------------------------------------------------------------------------- /troubleshooting/can-not-extract-filter-a-date-time-field-when-time-zones-are-enabled.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/troubleshooting/can-not-extract-filter-a-date-time-field-when-time-zones-are-enabled.md -------------------------------------------------------------------------------- /troubleshooting/new_troubleshooting: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/troubleshooting/new_troubleshooting -------------------------------------------------------------------------------- /troubleshooting/template.md.tmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hapytex/django-antipatterns/HEAD/troubleshooting/template.md.tmp --------------------------------------------------------------------------------