Django中包含动态网址的站点地图 - 模型适用于多个动态网址的情况

时间:2016-01-22 05:17:29

标签: python django sitemap

我正在尝试构建包含动态网址的站点地图。我有一个位置模型,我用它来为特定的餐馆(在给定的位置)和给定位置的所有餐馆生成动态网址。

这两个网址分别为/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

1 个答案:

答案 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'),
]