#django #dynamic #sidebar #privileges
#джанго #динамический #боковая панель #привилегии
Вопрос:
мне нужно динамически показывать свою боковую панель, используя 6 привилегий, которые администратор предоставляет пользователям. это мой views.py который я установил в своей функции django.я использовал флажок, чтобы выбрать здесь 6 привилегий. привилегии — это ecom, сервис, карьера, курс, блог, офлайн. для статуса администратора=1, статуса субадминатора=2.
def SIDEMENU(request):
# ii=request.session['sid']
a=db_coslogin.objects.all().filter(ecom=1,status=2)
b=db_coslogin.objects.all().filter(blog=1,status=2)
c=db_coslogin.objects.all().filter(servive=1,status=2)
d=db_coslogin.objects.all().filter(offline=1,status=2)
e=db_coslogin.objects.all().filter(career=1,status=2)
f=db_coslogin.objects.all().filter(course=1,status=2)
return render(request, "sidebar.html",{'ecomr':a,'blog':b,'servive':c,'offline':d,'career':e,'course':f})
models.py
class db_coslogin(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100)
username = models.CharField(max_length=100)
password = models.CharField(max_length=100)
type1 = models.CharField(max_length=50)
last_updated = models.DateTimeField(auto_now_add=False, auto_now=True)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
is_delete = models.IntegerField(default=0)
ecom = models.IntegerField(default=0)
service = models.IntegerField(default=0)
career = models.IntegerField(default=0)
cource = models.IntegerField(default=0)
offline = models.IntegerField(default=0)
blog = models.IntegerField(default=0)
status = models.IntegerField(default=0)
class Meta:
db_table = "db_coslogin"
Комментарии:
1. если кто-нибудь может помочь me..do это как можно скорее .. пожалуйста
2. Можете ли вы показать свою модель?
3. здесь я добавил models.py .
4. Спасибо. В качестве примечания, модели, по соглашению, обычно называются заглавными буквами. Например:
DBCosLogin
Ответ №1:
Если вы хотите продолжить использовать существующую модель и представление, вы можете сделать что-то подобное в шаблоне:
{% if ecomr.0.ecom %}
{% include 'ecom_menu.html' %}
{% elif blog.0.blog %}
{% include 'blog_menu.html' %}
{% else %}
...
{% endif %}
Тем не менее, я бы настоятельно рекомендовал ознакомиться со встроенными разрешениями Django https://docs.djangoproject.com/en/3.1/topics/auth/default/#default-permissions . Это позволит вам писать более чистый код и, что более важно, будет более безопасным.