django

Bewährte Methoden für die Django-Webentwicklung, einschließlich Models, Views, Templates und Tests.

npx skills add https://github.com/microsoft/debugpy --skill django

Skill: Django

Best practices for Django web development including models, views, templates, and testing.

When to Use

Apply this skill when working with Django projects — models, views, URL routing, templates, forms, admin, and management commands.

Project Structure

  • Follow the standard Django app layout: models.py, views.py, urls.py, admin.py, tests.py, forms.py.
  • Keep each app focused on a single domain concept; avoid "god apps" with unrelated models.
  • Use settings/base.py, settings/dev.py, settings/prod.py for environment-specific configuration.

Models

  • Always define __str__ on models for admin and debugging readability.
  • Use Meta.ordering sparingly — it adds ORDER BY to every query. Prefer explicit .order_by() on querysets.
  • Use database indexes (db_index=True, Meta.indexes) for fields that appear in filter() / order_by().
  • Prefer CharField with choices (or TextChoices / IntegerChoices) over bare strings for constrained fields.
  • Use F() expressions and Q() objects for complex queries to avoid race conditions and improve readability.

Views

  • Prefer class-based views (CBVs) for CRUD; prefer function-based views for one-off logic.
  • Always explicitly set queryset or override get_queryset() — never rely on mutable class-level state.
  • Use select_related() and prefetch_related() to avoid N+1 query problems.
  • Set LOGIN_URL and use @login_required / LoginRequiredMixin consistently.

Testing

  • Use pytest-django with @pytest.mark.django_db for database access.
  • Prefer TestCase or TransactionTestCase only when explicit transaction control is needed; otherwise use pytest fixtures.
  • Use RequestFactory or Client to test views without starting a server.
  • Use baker.make() (model-bakery) or factories instead of manual model construction in tests.

Pitfalls

  • Never do blocking I/O in async views without wrapping in sync_to_async.
  • Avoid importing models at module level in settings.py or urls.py (circular imports).
  • Never store secrets in settings.py — use environment variables.
  • Avoid raw SQL unless the ORM genuinely cannot express the query.

Mehr Skills von microsoft

oss-growth
microsoft
OSS-Wachstums-Hacker-Persona
official
winapp-ui-automation
microsoft
Untersuche und interagiere mit laufenden Windows-App-Oberflächen über die Befehlszeile mittels UI Automation (UIA). Verwende dies, wenn ein KI-Agent oder Entwickler eine Benutzeroberfläche untersuchen muss…
official
accessibility-aria-expert
microsoft
Erkennt und behebt Barrierefreiheitsprobleme in React/Fluent UI-Webansichten. Verwenden Sie dies bei der Überprüfung von Code auf Bildschirmleser-Kompatibilität, beim Korrigieren von ARIA-Labels, beim Sicherstellen…
official
generate-canvas-app
microsoft
[VERALTET — stattdessen canvas-app verwenden] Erstellt eine vollständige Power Apps Canvas-App.
official
github-issue-creator
microsoft
Wandle rohe Notizen, Fehlerprotokolle, Spracheingaben oder Screenshots in präzise GitHub-Flavored Markdown Issue-Berichte um. Verwende dies, wenn der Benutzer Bug-Informationen, Fehler… einfügt.
official
python-package-management
microsoft
Verwendet uv für das Abhängigkeitsmanagement und poethepoet für die Aufgabenautomatisierung.
official
runtime-validation
microsoft
Laufzeitvalidierung für migrierte Anwendungen — umfasst Teststrategie (Planungsphase) und Testausführung (Validierungsphase): Startüberprüfung,…
official
azure-postgres-ts
microsoft
Stellen Sie eine Verbindung zu Azure Database for PostgreSQL Flexible Server her, indem Sie das pg-Paket (node-postgres) mit Unterstützung für Passwort- und Microsoft Entra ID-Authentifizierung (passwortlos) verwenden.
official