我正在尝试构建一个包含我的动态网址的站点地图。我有一个位置模型,用于为特定餐厅(在给定位置)和给定位置的所有餐厅生成动态网址。
这两个网址分别是/restaurants/<restaurant-name-slug>/<location-name-slug>
和/restaurants/<ocation-name-slug>
如何为这两个网址生成动态网址,以便它们显示在我的站点地图文件中?似乎每个模型只能在get_absolute_url
方法中的一个 url models.py
这是我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
我认为这里不需要"动态网址",更不用说多个了。而且没有必要将任何东西与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'),
]