在通用列表中,当点击其中一个时,我将重定向至
url(r'^machine/(?P<pk>[0-9]+)$', MachineDetailView.as_view(), name='machine-detail'),
哪儿
class MachineDetailView(DetailView):
model = Awg
template_name = 'gui/machine_detail.html'
context_object_name = 'last_entry'
ordering = ['-timestamp']
然而我需要的是获取AWG记录,其中machine.id是AWG的外键。
在我的脑海中,它应该是这样的。
class MachineDetailView(DetailView):
last_entry = Awg.objects.filter(machine_id=Machine.objects.filter(id=pk).first()).first()
model = Awg
template_name = 'gui/machine_detail.html'
context_object_name = 'last_entry'
ordering = ['-timestamp']
那是行不通的,因为我不知道如何获取这些信息 pk
这是在请求的url中。如果是新手,请原谅,我确实尝试在django docs中寻找。
你可以覆盖 .get_object(..)
方法[Django-doc]你可以通过查询来获得 pk
参数从url模式通过 self.kwargs
这是一个包含URL参数的字典。
class MachineDetailView(DetailView):
model = Awg
template_name = 'gui/machine_detail.html'
context_object_name = 'last_entry'
def get_object(self, queryset=None):
return Awg.objects.filter(
machine_id=self.kwargs['pk']
).latest('timestamp')