python - 我可以在 Django 框架中使用条件运算符为多个用户使用动态侧边栏菜单吗?
问题描述
我有 1 个管理员和 6 个特权。管理员通过使用复选框为每个用户提供特权,例如 a、b、c、d、e。布尔值存储在表 db_coslogin 中。如果管理员给我 a 和 c 的特权,那么,我需要看到只有 a 和 c 的侧边栏。但是当管理员登录时,它希望看到所有侧边栏,如 a、b、c、d、e。如何在此处设置功能和 sidebar.html 页面?注意:1.admin 和 privilageusers 存储在同一个表中,字段名称、密码、状态、a、b、c、d、e 2.if admin,status=1 如果特权用户,则 status=2。我不想在此处包含任何额外的 html 页面。我只想根据更改的权限动态设置我的 sidebar.html。
我的代码:{% tablename.status == 2 和 request.session.sid == tablename.id %} ?{% 复选框 == 1 %} : {% 复选框== 0 %}
我需要使用管理员提供给用户的 6 个特权来动态显示我的侧边栏。这是我在 django 函数中设置的 views.py。我使用复选框在这里选择了 6 个特权。特权是电子商务、服务、职业、课程、博客、离线。对于管理员状态 = 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})
模型.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"
登录功能
def LOGIN1(request):
if request.method=="POST":
uname = request.POST.get("username")
passwrd = request.POST.get("password")
a = db_coslogin.objects.filter(username=uname,password=passwrd,status=1,type1="admin")
b = db_coslogin.objects.filter(username=uname,password=passwrd,status=2)
c = db_coslogin.objects.all().filter(status=2)
for opp in c:
id=opp.id
print(id,"id")
print("++++++++++++")
if a:
print("-----------")
return redirect("/adminindex")
elif b:
for i in b:
request.session['sid']=i.id
varr=i.id
print(varr,"session id of subadmin")
print("==============")
return redirect("/adminindex")
else:
return redirect("/login")
else:
return HttpResponse("noooooooooooo post")
print("###########")
解决方案
推荐阅读
- amazon-web-services - 在媒体包 VOD 中,使用 aws-sdk createAsset() 它会给出内部服务器错误通过 javascript
- c++ - 值覆盖的 C++ 问题
- google-kubernetes-engine - 问,Istio 关于 gke 错误安装,厨房 + 试运行但在日志中出现错误
- c++ - 除非使用某些寄存器,否则函数挂钩会崩溃
- javascript - 如何在带有条件的jquery数据表中禁用渲染功能?
- assembly - 这是关于对GCC汇编语言的理解
- python - 如何在python中使用数据框更新现有的excel表
- python - NameError:名称“预测”未定义
- c# - 数据网格未与 ObservableCollection 类成员 C# WPF 绑定
- javascript - 正则表达式 `match` 根据查找列表的顺序返回不同的结果