[英]Pass value from url request with Django generic detail view
從 GenericList 中,單擊一個時,我重定向到
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']
但是我需要的是獲取其中 machine.id 是 AWG 中的外鍵的 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']
這不起作用,因為我不知道如何獲得請求的 url 中的那個pk
。 抱歉,如果新手,我確實嘗試查看 django 文檔。
您可以覆蓋.get_object(..)
方法 [Django-doc] ,並進行查詢以返回該 object。 您可以通過self.kwargs
從 url 模式中獲取pk
參數,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')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.