Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ModelChoiceFilter无法使用django筛选器_Python_Django_Django Filter_Django Filters - Fatal编程技术网

Python ModelChoiceFilter无法使用django筛选器

Python 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):

我使用的是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):
          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
类中的模型似乎需要是相关模型,在您的情况下,
装运
,而不是
商户
。然后,您可以通过
商户
筛选
装运