Python ModelChoiceFilter无法使用django筛选器
我使用的是Django 1.8,我想列出所有使用Django_过滤器的商户,我有两个模型Shipping和merchantPython ModelChoiceFilter无法使用django筛选器,python,django,django-filter,django-filters,Python,Django,Django Filter,Django Filters,我使用的是Django 1.8,我想列出所有使用Django_过滤器的商户,我有两个模型Shipping和merchant class Merchant(models.Model): merchant_id = models.CharField(max_length=100,db_index=True,verbose_name='Merchant ID',null=True,blank=True) class Shipment(models.Model):
class Merchant(models.Model):
merchant_id = models.CharField(max_length=100,db_index=True,verbose_name='Merchant ID',null=True,blank=True)
class Shipment(models.Model):
merchant_related = models.ForeignKey(Merchant,on_delete=models.CASCADE,verbose_name="merchant related to shipment")
我有包含所有装运和相关商户的装运列表页面,我需要在shipping_list.html中添加商户过滤器,并将所有商户创建的ID作为选项
filter.py
class MerchantFilter(django_filters.FilterSet):
merchants = django_filters.ModelChoiceFilter(queryset=Merchant.objects.all())
class Meta:
model = Merchant
fields = ['merchants']
views.py
def search_merchant(request):
merchant_filter = MerchantFilter(request.GET,queryset=Merchant.objects.all())
context = {
'filter':merchant_filter
}
return render(request,"shipment_list.html",context)
In shipment_list.html:
<div>
<form method="get">
{{ filter.form.as_p }}
<button type="submit">Search</button>
</form>
</div>
filter.py
类别MerchantFilter(django_filters.FilterSet):
merchants=django_filters.ModelChoiceFilter(queryset=Merchant.objects.all())
类元:
型号=商户
字段=['merchants']
views.py
def搜索_商户(请求):
merchant\u filter=MerchantFilter(request.GET,queryset=merchant.objects.all())
上下文={
“过滤器”:商户过滤器
}
返回呈现(请求“shipping_list.html”,上下文)
在shipping_list.html中:
{{filter.form.as_p}
搜寻
我得到了搜索按钮。但没有得到商家创建的ID作为选择。提前感谢。首先,django filter现在仅列为支持
django 1.11+
。那么,您使用的是支持Django 1.8的较旧版本吗?其次,如果您检查
标记,那么它们之间的实际输出/源是什么。除了按钮之外,还有什么东西被添加了吗?按钮被添加了,当我检查它时,表单是空白的。我想将商户创建的id显示为选项,即下拉OK,因此您的过滤器Meta
类中的模型似乎需要是相关模型,在您的情况下,装运
,而不是商户
。然后,您可以通过商户筛选装运
。