【发布时间】:2021-06-17 04:32:03
【问题描述】:
我是 Django 新手,正在尝试一些东西。如果普通用户访问“\create”页面(调用名为medicine_create_view的函数),我正在考虑返回一个名为“in_accessable.html”的页面, else drug_create.html。
管理员的名字是“npend”(使用print(request.user)检查)所以我给出了一个if语句来检查用户名是否是'npend',
我使用 request.user 方法来获取用户名,即使我使用 admin 访问该页面,如果我尝试打印 request.user == "npend" 的语句,我得到一个错误,它每次都打印 False。
谁能帮我解决这个问题,谢谢。
使用的代码:
def medicine_create_view(request, *args,**kwargs):
my_form = Raw_Medicine_Form()
if request.method == 'POST':
my_form = Raw_Medicine_Form(request.POST)
if my_form.is_valid():
print(my_form.cleaned_data)
Medicine.objects.create(**my_form.cleaned_data)
else:
print(my_form.errors)
my_form = Raw_Medicine_Form()
context ={
"form" : my_form,
}
#print(request.user)
#print(request.user=="npend")
if(request.user=="npend"): return render(request,"App_1/medicine_create.html",context)
else: return render(request,"error_files/not_acessable.html",{})
Out_Put 屏幕如图所示:
False
npend
[17/Jun/2021 09:37:36] "GET /create/ HTTP/1.1" 200 227
【问题讨论】:
标签: python django if-statement backend