Ich möchte versuchen, URLs auf meiner Navigationsseite basierend auf der Benutzergruppe anzuzeigen oder auszublenden. zZ addiere ich zum Anfang jeder Ansicht und sende durch einen Wert zur Schablone und das Überprüfen gegen das, aber dieses scheint nicht zu leistungsfähig, auch wenn eine Ansicht nicht auth erfordert und dieser Wert nicht eingestellt wird, bricht das Vorlage?Django - URLs in Basis-HTML anzeigen/verbergen, abhängig von der Benutzergruppe?
Gibt es einen besseren Weg, dies zu tun? Wie ein globales.py, wo ich überprüfen und setzen dann in jeder Vorlage verwenden könnte? oder etwas ganz anderes?
view.py
Authorised_user = ''
if request.user.is_authenticated():
Authorised_user = 'IT'
@login_required
def index(request):
return render(request, 'service/index.html', {
'Authorised': Authorised_user,
})
template.html
{% if Authorised == 'IT' or Authorised =='Netwworks' %}
<a href="link">Link</a>
{% endif %}
Dies ist ein wenig unklar. Wie bestimmen Sie, ob der Benutzer IT oder Netzwerke ist? Und warum kannst du das nicht in der Vorlage tun? –
Es gibt kein global.py, aber Sie können einen benutzerdefinierten Kontextmanager schreiben, um dies zu erreichen. – Selcuk
Suchen Sie nach TEMPLATE_CONTEXT_PROCESSORS? – Anoop