我试图得到一个物体的所有属性。我总是收到“设备匹配查询不存在”的问题,我就是想不出我的问题。在
`class Devices(models.Model):
category_id = models.ForeignKey(Category, on_delete=models.CASCADE)
device_description = models.CharField(max_length=100)
device_status = models.CharField(max_length=50)
device_date = models.DateTimeField()
device_user = models.CharField(max_length=50)`
def view_status(request, pk=None):
device = Devices.objects.get(pk=pk)
return render(request, 'homesite/device_status.html', device)
url(r'^viewstatus/$', views.view_status, name='ViewStatus'),
here is the url I use to call http://localhost:8000/homesite/viewstatus/?pk=1
我的能力里有4个记录,所以我知道有一个PK=1的匹配项。在
我收到一个错误“Devices”对象不可读取
在py网址在
这就是url的设置方式。
url(r'^viewstatus/$', views.view_status, name='ViewStatus'),
但是应该是这样的
url(r'^viewstatus/(?P<pk>\d+)/$', views.view_status, name='ViewStatus'),
这样我就可以这样打电话了对吗?http://localhost:8000/homesite/viewstatus/1/
在视图.py在
def view_status(request): pk = request.GET['pk'] device = Devices.objects.get(pk=pk) return render(request, 'homesite/device_status.html', device
所以我需要相应的视图.py要使用的代码
http://localhost:8000/homesite/viewstatus/1/
我盯着这个看了好几个小时,所以我知道我错过了一些简单的东西。在
尝试更改视图功能:
如果有帮助请告诉我:)
请注意,这不是构建用于访问特定对象的URL的常用方法。下面我首先介绍在URI中集成
pk
的方法,然后介绍将pk
作为参数传递的方法。在1。方法
在这里,您将
pk
放在URI中,并请求类似于http://localhost:8000/homesite/viewstatus/1/
的内容。如果你这样做,你需要调整你的网址.py通过指定URI的哪一部分是您想要的pk
:你写风景的方式很好:
^{pr2}$现在,
views.view_status
将被调用,同时使用request
对象和pk
作为参数,objects.get
将按您预期的方式工作,如果您放入URI中的pk存在于数据库中。在请注意,这是获取对象的首选方法。在
2。方法
在本例中,您将
pk
作为参数传递,例如,调用http://localhost:8000/homesite/viewstatus/?pk=1
。现在,pk
是GET请求的一个参数。在这种情况下:视图只接受
request
对象作为参数。在视图中,您可以获得如下pk:所以在本例中,除了
request
对象之外,您的视图不接受任何参数。在另一个问题是在视图函数中:Django的快捷方式^{} 接受一个
dict
对象作为可选参数context
。当前直接传递设备对象。您需要在view_status
中更新返回语句:希望有帮助!在
相关问题 更多 >
编程相关推荐