尝试创建一个菜单,其中“城市/位置”有“社区”的子菜单
视图.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)
模板.html
^{pr2}$显然,当我运行这个程序时,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")
...
如果我没有正确理解这种关系,一个城市有很多街区。所以这是一种多对多的关系。在模型.py这看起来像
然后,您可以将页面设置为在href中接受城市名称作为参数,然后仅为该城市中的社区调用页面视图。您在模板中的href链接可转到仅包含其社区的城市视图,如下所示:
^{pr2}$链接到您的网址.py公司名称:
那么你的观点视图.py城市中的社区可能只会像这样过滤:
那就只打电话给那个城市的社区模板.html公司名称:
希望能显示数据库调用,视图.py进程,以及它如何根据中的请求路由视图网址.py. 如果你还需要什么,lmk。在
相关问题 更多 >
编程相关推荐