django views List to Detail 搜索参数
django views List to Detail search parameter
我有 2 个模型:
Ovt
仅是文档 header 数据 (ovtnumber = mycommonfield)
Ovr
这是所有引用 Ovt
且字段不是 pk 的行(mycommonfield 仅引用一个 Ovt
)。
我需要通过 mycommonfield 访问 Ovr
中引用所选 Ovt
的行列表。
views.py
class OvtListView(ListView):
""" header """
model = models.Ovt
class OvtDetailView(DetailView):
""" rows """
model = models.Ovr
# SELECT ••• FROM "ovr" WHERE "ovr"."id" = 1
我需要的是生成的 SQL 类似于:
SELECT ••• FROM "ovr" WHERE "ovr"."mycommonfield" = 1
我没有得到你所需要的。但是据我了解,您想使用详细视图获取对象。
DetailView
始终默认根据 URL 中传递的 PK
获取一个对象。这是 Django 文档中的示例。
如果您有此 URL 模式,它将提供作者的详细信息
urlpatterns = [
#...
url(r'^authors/(?P<pk>[0-9]+)/$', AuthorDetailView.as_view(), name='author-detail'),
]
那么你的详细视图将是这样的。
class PublisherDetail(DetailView):
model = Publisher
如果你想添加额外的上下文,你可以使用方法 get_context_data
I need to to access the list of rows in Ovr that refers to a selected
Ovt, by mycommonfield.
据此我了解到您想将链接到您在详细视图中选择的 OVT 的 OVR 列表传递给您的模板
这也可以使用 get_context_data
来完成
class OvtDetailView(DetailView):
""" rows """
model = models.Ovt
def get_context_data(self, **kwargs):
# get the list of OVRs and add it to the context
context = super(OvtDetailView, self).get_context_data(**kwargs)
context['ovrs'] = models.Ovr.objects.filter(mycommonfield=self.object.pk)
return context
我有 2 个模型:
Ovt
仅是文档 header 数据 (ovtnumber = mycommonfield)
Ovr
这是所有引用 Ovt
且字段不是 pk 的行(mycommonfield 仅引用一个 Ovt
)。
我需要通过 mycommonfield 访问 Ovr
中引用所选 Ovt
的行列表。
views.py
class OvtListView(ListView):
""" header """
model = models.Ovt
class OvtDetailView(DetailView):
""" rows """
model = models.Ovr
# SELECT ••• FROM "ovr" WHERE "ovr"."id" = 1
我需要的是生成的 SQL 类似于:
SELECT ••• FROM "ovr" WHERE "ovr"."mycommonfield" = 1
我没有得到你所需要的。但是据我了解,您想使用详细视图获取对象。
DetailView
始终默认根据 URL 中传递的 PK
获取一个对象。这是 Django 文档中的示例。
如果您有此 URL 模式,它将提供作者的详细信息
urlpatterns = [
#...
url(r'^authors/(?P<pk>[0-9]+)/$', AuthorDetailView.as_view(), name='author-detail'),
]
那么你的详细视图将是这样的。
class PublisherDetail(DetailView):
model = Publisher
如果你想添加额外的上下文,你可以使用方法 get_context_data
I need to to access the list of rows in Ovr that refers to a selected Ovt, by mycommonfield.
据此我了解到您想将链接到您在详细视图中选择的 OVT 的 OVR 列表传递给您的模板
这也可以使用 get_context_data
class OvtDetailView(DetailView):
""" rows """
model = models.Ovt
def get_context_data(self, **kwargs):
# get the list of OVRs and add it to the context
context = super(OvtDetailView, self).get_context_data(**kwargs)
context['ovrs'] = models.Ovr.objects.filter(mycommonfield=self.object.pk)
return context