【发布时间】:2017-06-11 23:19:55
【问题描述】:
我的项目遇到了一点问题。我想将我的Django website 中的一部分授权给除一个(超级管理员)之外的所有组(访客、客户……)。
这是我的 HTML 模板:
<!-- Home tab -->
<ul class="nav navbar-nav">
<li><a href="{% url "accueil" %}"> <span class="glyphicon glyphicon-home"></span> Accueil </a></li>
{% if request.user|has_group:"admin" %}
<li class = "dropdown">
<a href = "#" class = "dropdown-toggle" data-toggle = "dropdown">
Informations Mairie
<b class = "caret"></b>
</a>
<ul class = "dropdown-menu">
<li><a href = "{% url "Mairieform" %}"> <span class="glyphicon glyphicon-pencil"></span> Créer/Editer les informations de la Mairie </a></li>
<li><a href = "{% url "Mairieresume" %}"> <span class="glyphicon glyphicon-home"></span> Consulter les informations de la Mairie </a></li>
</ul>
</li>
<li class = "dropdown">
<a href = "#" class = "dropdown-toggle" data-toggle = "dropdown">
Actes Etat Civil
<b class = "caret"></b>
</a>
<ul class = "dropdown-menu">
<li><a href = "{% url "home" %}"> <span class="glyphicon glyphicon-user"></span> Fiches Individuelles </a></li>
<li><a href = "{% url "BChome" %}"> <span class="glyphicon glyphicon-baby-formula"></span> Actes de Naissance </a></li>
<li><a href = "{% url "BCnotfound" %}"> <span class="glyphicon glyphicon-heart"></span> Actes de Mariage </a></li>
<li><a href = "{% url "BCnotfound" %}"> <span class="glyphicon glyphicon-fire"></span> Actes de Divorce </a></li>
<li><a href = "{% url "BCnotfound" %}"> <span class="glyphicon glyphicon-alert"></span> Actes de Décès </a></li>
</ul>
</li>
</ul>
{% elif request.user |has_group:"visiteur","employé", "officier", "maire" %}
<ul class="nav navbar-nav">
<li><a href="{% url "accueil" %}"> <span class="glyphicon glyphicon-home"></span> Accueil </a></li>
<li class = "dropdown">
<a href = "#" class = "dropdown-toggle" data-toggle = "dropdown">
Informations Mairie
<b class = "caret"></b>
</a>
<ul class = "dropdown-menu">
<li><a href = "{% url "Mairieresume" %}"> <span class="glyphicon glyphicon-home"></span> Consulter les informations de la Mairie </a></li>
</ul>
</li>
<li class = "dropdown">
<a href = "#" class = "dropdown-toggle" data-toggle = "dropdown">
Actes Etat Civil
<b class = "caret"></b>
</a>
<ul class = "dropdown-menu">
<li><a href = "{% url "home" %}"> <span class="glyphicon glyphicon-user"></span> Fiches Individuelles </a></li>
<li><a href = "{% url "BChome" %}"> <span class="glyphicon glyphicon-baby-formula"></span> Actes de Naissance </a></li>
<li><a href = "{% url "BCnotfound" %}"> <span class="glyphicon glyphicon-heart"></span> Actes de Mariage </a></li>
<li><a href = "{% url "BCnotfound" %}"> <span class="glyphicon glyphicon-fire"></span> Actes de Divorce </a></li>
<li><a href = "{% url "BCnotfound" %}"> <span class="glyphicon glyphicon-alert"></span> Actes de Décès </a></li>
</ul>
</li>
</ul>
{% endif %}
如您所见,我只有一个选项卡,除超级管理员组外,所有组都必须不可见。它适用于超级管理员,但我的问题是:
我如何写这行:{% if request.user|has_group:"admin" %} for :
- 除超级管理员外的所有组
- 或访客、客户……
类似这样的:
{% elif request.user |has_group:"visiteur","employé", "officier", "maire" %}
谢谢!
编辑:
这是来自我的一个应用程序的 views.py 文件:
#-*- coding: utf-8 -*-
import requests, os, json, glob
from django.shortcuts import render, reverse, get_object_or_404
from django.contrib.auth.decorators import login_required
from django.http import HttpResponseRedirect, HttpResponse
from .models import BirthCertificate, Country
from .forms import BirthCertificateForm
from django.db import connection
from django.template import Context
from django.template.loader import get_template
from xhtml2pdf import pisa
import time, random
@login_required
def BirthCertificate_Home(request) :
return render(request, 'BC_accueil.html')
@login_required
def BirthCertificate_notfound(request) :
return render(request, 'Not_Found.html')
@login_required
def BirthCertificate_accueil(request) :
return render(request, 'Accueil.html')
@login_required
def BirthCertificate_Form(request) :
# Fonction permettant de créer le formulaire Acte de Naissance et le remplissage
Bform = BirthCertificateForm(request.POST or None)
template_name = 'BC_form.html'
if Bform.is_valid() : # Vérification sur la validité des données
if '_preview2' in request.POST :
post = Bform.save(commit=False)
template_name = 'BC_preview.html'
elif '_save2' in request.POST :
post = Bform.save()
return HttpResponseRedirect(reverse('BC_treated', kwargs={'id': post.id}))
return render(request, template_name, {"Bform" : Bform})
@login_required
def BirthCertificate_Resume(request, id) : ...
@login_required
def BirthCertificate_PDF(request, id) : ...
【问题讨论】: