【发布时间】:2014-04-20 12:40:15
【问题描述】:
尝试创建一个包含“城市/位置”的菜单,其中包含“社区”的子菜单
- 纽约
- -- 邻里
- -- 邻里
- -- 邻里
- 芝加哥
- -- 邻里
- -- 邻里
- -- 邻里
- 迈阿密
- -- 邻里
- -- 邻里
- -- 邻里
View.py
def location(request):
args['getlocs'] = Location.objects.filter(switch=1, restaurants__city_id=8).order_by('name')
args['gethoods'] = Hood.objects.filter(switch=1, restaurants__city_id=8).distinct().order_by('name')
return render_to_response('location.html', args)
Template.html
<ul>
{% for location in getlocs %}
<li>{{ location.name }}</li>
<ul>
{% for hood in gethoods %}
<li>{{ hood.name }}</li>
{% endfor %}
</ul>
{% endfor %}
</ul>
显然,当我运行此程序时,会显示 db 中的每个社区,我只需要显示属于每个城市/位置的社区。有没有办法只是向 html 模板添加一些条件,还是我需要更改视图?非常感谢!
编辑:
class Location(models.Model):
name = models.CharField(max_length=50, db_column='location', blank=False, null=False)
city = models.ForeignKey('City', related_name="locations")
...
class Hood(models.Model):
name = models.CharField(max_length=50, db_column='hood')
city = models.ForeignKey('City', related_name='hoods')
location = models.ForeignKey('Location', related_name='hoods')
...
class Restaurant(models.Model):
name = models.CharField(max_length=50, db_column='name', blank=True)
location = models.ForeignKey('Location', related_name="restaurants")
hood = models.ForeignKey('Hood', null=True, blank=True, related_name="restaurants")
...
【问题讨论】:
-
Location和Hood模型是如何关联的?你能展示一下模型吗?谢谢。 -
感谢您的回复。贴出上面的模型。还有一个带有 CITY 的模型,因此是视图中的引用,但该模型始终被引用,并且不是菜单/子菜单的一部分。
标签: python sql django django-models django-templates