場所とサプライヤーの2つのクラスがあります。サプライヤは、製品を1つ以上の都市に供給します。
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)
上記のシェルコマンドは、都市1(int)のすべてのサプライヤーを一覧表示します。しかし、Webページから都市名を取得し、それに基づいてフィルタリングする必要がありますか?
意見:
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 %}