college-api/library_api/api_v1/admin.py
2026-09-07 03:50:17 +03:00

71 lines
1.9 KiB
Python

# garden/admin.py
from django.contrib import admin
from .models import Plant, Greenhouse
class PlantInline(admin.TabularInline):
"""Позволяет редактировать растения прямо на странице теплицы."""
model = Plant
extra = 0
fields = (
"name",
"species",
"family",
"height_cm",
"is_flowering",
"endangered",
)
show_change_link = True
@admin.register(Greenhouse)
class GreenhouseAdmin(admin.ModelAdmin):
list_display = ("id", "name", "location", "climate_zone", "plant_count")
list_filter = ("climate_zone",)
search_fields = ("name", "location")
ordering = ("name",)
inlines = [PlantInline]
@admin.display(description="Кол-во растений")
def plant_count(self, obj):
return obj.plants.count()
@admin.register(Plant)
class PlantAdmin(admin.ModelAdmin):
list_display = (
"id",
"name",
"species",
"family",
"greenhouse",
"height_cm",
"is_flowering",
"endangered",
"planted_at",
)
list_filter = (
"greenhouse",
"family",
"is_flowering",
"endangered",
"origin_country",
)
search_fields = ("name", "species", "family", "origin_country")
date_hierarchy = "planted_at"
ordering = ("-planted_at",)
list_select_related = ("greenhouse",)
autocomplete_fields = ("greenhouse",)
list_per_page = 25
fieldsets = (
("Основное", {
"fields": ("name", "species", "family", "greenhouse")
}),
("Характеристики", {
"fields": ("height_cm", "watering_frequency_days", "is_flowering", "endangered")
}),
("Происхождение", {
"fields": ("planted_at", "origin_country")
}),
)