首页 > 解决方案 > django 链接到单独预过滤的数据

问题描述

嘿!

我有多个视图,一些带有结果表和一些详细视图。从详细视图应该有到其他详细视图(有效)和一些带有预过滤结果的结果表的链接。例如,在详细视图中给出的名称之后。

如果单击按钮,我希望重定向到已针对详细视图中给出的(例如)操作环境过滤的结果表。但我想对所有详细视图使用相同的模板(每个工厂都有一个详细视图),所以它应该是通用的,而不是硬编码的。

有谁知道我可以做到这一点?

# views.py

def plants_view(request):
    plants = Plant.objects.all()
    myFilter = PlantFilter(request.GET, queryset=plants)
    plants = myFilter.qs
    context = {"plants": plants, "myFilter": myFilter}

    return render(request, 'plants/search_table.html', context)


class PlantDetail(DetailView):
    model = Plant

    def get(self, request, *args, **kwargs):
        plant = get_object_or_404(Plant, pk=kwargs['pk'])
        context = {'plant': plant}
        return render(request, 'plants/detail.html', context)
# filters.py
class PlantFilter(django_filters.FilterSet):

    name = CharFilter(field_name="name", lookup_expr='icontains')
    possession_of_plant = ModelChoiceFilter(queryset=PossessionOfPlant.objects.all())

        class Meta:
        model = Plant
        fields = '__all__'
<!-- detail.html -->

<h3>Plant</h3>
<p><b>Name: </b>{{plant.name}}</p>
<p><b>Plant type: </b>{{plant.plant_type}}</p>
<p><b>Operating Environment: </b>
    <a href="{% url 'plants:plants' %}?name=&plant_type=&operating_environment=pilot&nuts_level_3=&comment=&possession_of_plant=">
    {{plant.operating_environment}}</a></p>

像这样我可以在链接中进行预过滤,但它是针对操作环境 = 飞行员进行硬编码的。我想要的是过滤工厂/详细信息视图中使用的确切操作环境。有没有办法做到这一点?

任何帮助表示赞赏!如果你只知道我应该在哪里看起来那对我来说完全没问题!

此致 :)

标签: djangodjango-viewsdjango-templatesdjango-filterdjango-template-filters

解决方案


推荐阅读