在Django视图中使用URL传递的值并将其呈现为模板

时间:2019-12-12 05:10:16

标签: django

Views.py

class citydetailview(generic.DetailView):
   #Generic class-based list view for a list of cities.
    model = City
    def get_city_value(request, pk):
        if pk==1:
            hyd=Type_city1.objects.all()
        elif pk==2:
            hyd=Type_city2.objects.all()
        elif pk==3:
            hyd=Type_city3.objects.all()
        return (request,{'hyd':hyd})

urls.py

path('city/<int:pk>', views.citydetailview.as_view(), name='city_ads_detail'),

我想在我的一个课程中使用urls.py中的'pk'值,并将输出相应地呈现给模板

1 个答案:

答案 0 :(得分:1)

而不是为什么不使用列表视图:

class CityDetailView(generic.ListView):
    model = City

    def get_queryset(self):
        city_type = self.kwargs['city_type']
        if city_type == 1:
            return Type_city1.objects.all()
        elif city_type == 2:
            return Type_city2.objects.all()
        elif city_type == 3:
            return Type_city3.objects.all()

        return super().get_queryset()

# urls
path('city/<int:city_type>/', views.CityDetailView.as_view(), name='city_ads_detail'),

最后,最好也共享您的模型。因为我认为您的模型结构可能不正确。您可以将它们存储在单个模型中,然后根据字段Type_city进行过滤,而不是使用不同的city_type模型。