/ / Django: správny spôsob, ako upraviť názov webovej stránky v Správcovi - Django, Django-šablóny, Django-admin

Django: správny spôsob, ako spraviť titulok na stránkach v admin - django, django-templates, django-admin

Staviam web s Djangom. V šablóne hlavičky mám hlavný názov pre web, ktorý je momentálne v ňom napevno.

Ako to môžem upraviť v adminovi pomocousprávca webových stránok (alebo akýkoľvek používateľ so správnymi povereniami)? V ideálnom prípade by som chcel mať možnosť, aby bolo možné upraviť viac takýchto atribútov celého webu (alebo celej aplikácie) v správcovi (napríklad web - alebo popis aplikácie).

Mám na mysli niečo ako WordPress “ bloginfo () . Praktickým príkladom toho je washingtonpost.com ktorí pred pár týždňami zmenili moto v hlavičke na „Demokracia zomiera v tme“.

Po editácii titulu (alebo iného atribútu) v administrátorovi samozrejme musím byť schopný získať ho z mojej šablóny.

odpovede:

1 pre odpoveď č. 1

Môžete vytvoriť jednoduchý model na ukladanie dynamických parametrov webových stránok, napríklad tento:

class WebsiteParam(models.Model):
key = models.CharField(max_length=50)
val = models.CharField(max_length=1024)

Potom definujte vlastný kontextový procesor šablón settings_processor.py

def settings_processor(request):
vals = {x.key: v.val for x in WebsiteParam.objects.all()}
return {"website_settings": vals}

Pridajte tento procesor do súboru django settings.py, napríklad:

from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
"myapp.settings_processor.settings_processor",
)

A svoje nastavenia budete môcť použiť vo všetkých svojich šablónach ako

<html><head><title>{{website_settings.title}}</title>...

ak máte nastavenia s title kľúč pridaný do databázy

Ak je to potrebné, mali by ste samozrejme pridať do pamäte cache kontextový procesor a ďalšie podmienky