第一个示例是GET请求
/health/errorfiles/?item=testdevice_R
item
在里面
request.GET
/health/errorfiles/testdevice_R/
要求获取
项目
因为你有一个命名组
(?P<item>[^/]+)
在您的URL模式中。
r'/home/device/(?P<item>[^/]+)'
.
第二个版本的测试揭示了您认为的问题。您需要修复视图,使其不会升高
TypeError
.
理想情况下,您不应该这样编写原始SQL。Django允许您执行以下操作:
from .models import Device
from django.shortcuts import get_object_or_404, render
def showhome(request, item):
device = get_object_or_404(Device, user=request.user, item=item)
if device is not None:
timezone.activate(device.tzone)
return render(request,"Home/showdevices.html", {'device': device})
如果必须使用原始SQL,则不要使用字符串替换
%(username,item)
s.execute("Select tzone,type from device where user=%s" and device=%s, (username, item))
然后,您的代码处理以下情况:
tz
是
None
,以避免
.
tz = s.fetchone()
if tz is not None:
timezone.activate(tz[0])
else:
# Decide what to do if no items returned