我正在尝试构建包含动态网址的站点地图。我有一个位置模型,我用它来为特定的餐馆(在给定的位置)和给定位置的所有餐馆生成动态网址。
这两个网址分别为/restaurants/<restaurant-name-slug>/<location-name-slug>
和/restaurants/<ocation-name-slug>
如何为这两个网址生成动态网址,以便它们显示在我的网站地图文件中?看起来每个模型只能在models.py
中的get_absolute_url
方法中使用一个url
以下是我在models.py
中的内容,该内容适用于/restaurants/<ocation-name-slug>
网址但不适用于其他网址:
class Location(models.Model):
restaurant = models.ForeignKey(Restaurant)
name_slug = ...
city = ...
longitude = ...
...
def get_absolute_url(self):
return reverse('view_restaurant', args=[self.name_slug])
def __str__(self): # __unicode__ on Python 2
return self.name
答案 0 :(得分:0)
我认为这里不需要“动态网址”,更不用说多个网页了。而且没有必要将任何内容绑定到get_absolute_url
。
相反,你的urls.py中有两个完全标准的模式:一个用于餐馆,一个用于餐馆位置。
urls = [
url(r'^locations/(?P<location_slug>\w+)/$', views.location, name='location'),
url(r'^restaurants/(?P<restaurant_slug>\w+)/$', views.restaurant, name='restaurant'),
]