2
我有两个类位置和供应商。供应商将其产品供应给一个或多个城市。过滤Django中的多对多关系
class Location(models.Model):
cities = models.CharField(max_length=30)
class Supplier(models.Model):
name = models.CharField(max_length=100)
supplied_cities = models.ManyToManyField(Location)
现在我必须从城市列表中获取城市的所有供应商。例如:如果伦敦被点击,我应该得到所有与伦敦有关的供应商。我应该怎么做?
Supplier.objects.filter(supplied_cities= 1)
以上shell命令列出来自城市1(int)的所有供应商。但是我必须从网页捕捉城市名称并根据它进行过滤?
查看:
def my_view(request):
cityName = request.GET['place']
sellers = Supplier.objects.filter(supplied_cities= Location.objects.get(cities=cityName))
context = {'sellers' : sellers }
return render_to_response('results.html',context,context_instance=RequestContext(request))
模板:
{% for sellers in object_list %}
<li> {{ sellers.name }} </li>
{% endfor %}
谢谢。过滤器在shell命令中工作。我应该如何创建网址?例如,目前我正在使用http://127.0.0.1:8000/locations/search/london/,但它看起来像上下文变量“卖家”总是空的。 – Robby
谢谢。有效。 – Robby