paladin223 / django

0 stars 0 forks source link

Код передачи в контекст перегружен #50

Open drowsycoder opened 1 year ago

drowsycoder commented 1 year ago
def item_list(request):
    template = "catalog/catalog.html"
    context = {
        "items": catalog.models.Item.objects.published()
        .only(
            catalog.models.Item.name.field.name,
            catalog.models.Item.text.field.name,
            catalog.models.Item.tags.field.name,
        )
        .order_by("category"),
        "show_category": False,
    }

Передаваемое в контекст значение перегружено
Будет лучше, если будет просто "items": items,, где items'у присвоено что-то до этого, а то читается плохо
А на будущее вообще это можно отдельно в менеджер переместить, здесь есть разные подходы (если большей частью оперируют модельки, это подход fat models)

drowsycoder commented 1 year ago

А в .order_by("category") строку с обращением к категории вполне можно сделать через .field.name (аналогично тому, как у тебя же выше)
И это не только там, .field.name стоит максимально использовать, где можно