python / intermediate
Snippet
Benutzerdefinierte Model-Manager-Methode für flache Listen-Sammlungen
Benutzerdefinierte QuerySets kapseln Datenabrufmuster in wiederverwendbare Methoden. Die Verwendung von `.values_list('sku', flat=True)` wandelt Abfragen einzelner Spalten direkt in flache Standard-Python-Listen um.
snippet.py
python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from django.db import modelsclass ProductQuerySet(models.QuerySet):def extract_active_sku_list(self) -> list[str]:return list(self.filter(is_active=True).values_list("sku", flat=True).distinct())class Product(models.Model):sku = models.CharField(max_length=30, unique=True)is_active = models.BooleanField(default=True)objects = ProductQuerySet.as_manager()
django
Erklärung
1
class ProductQuerySet(models.QuerySet):
Definiert eine eigene QuerySet-Unterklasse für wiederverwendbare Bereichsabfragen.
2
def extract_active_sku_list(self) -> list[str]:
Definiert eine Manager-Methode, die eine typisierte Liste von SKU-Strings zurückgibt.
3
.values_list("sku", flat=True)
Fragt Werte als einfache flache Elemente anstelle von Tupel-Objekten ab.
4
objects = ProductQuerySet.as_manager()
Weist die benutzerdefinierten QuerySet-Methoden direkt dem Model-Manager zu.