【问题标题】:Dynamic SEO-friendly URLs动态 SEO 友好的 URL
【发布时间】:2010-12-24 09:18:59
【问题描述】:

我想通过两种方式为我的应用部署动态 URL:

  1. 查看可用车辆时,我得到一个链接,如:http://www.url.com/2006-Acura-MDX-Technology-Package
  2. 我还有一个过滤器页面,所以在这里,URL 会根据选择的过滤器而变化,例如:http://www.url.com/2007-Nissanhttp://www.url.com/2007-Nissan-Maxima 等等,具体取决于用户选择的过滤器。

最好的方法是什么?

编辑 1

现在可以了

def get_absolute_url(self):
    return u'%s-%s-%s-%s-%s' % (self.common_vehicle.year.year,
                                self.common_vehicle.series.model.manufacturer,
                                self.common_vehicle.series.model.model,
                                self.common_vehicle.series.series, 
                                self.stock_number)

然后在我的模板中:

<a href="{{ vehicle.get_absolute_url }}/">
  <span class="vehicle-title">
    {{ vehicle.common_vehicle.year.year }}&nbsp;
    {{ vehicle.common_vehicle.series.model.manufacturer }}&nbsp;
    {{ vehicle.common_vehicle.series.model.model }}&nbsp;
    {{ vehicle.common_vehicle.series.series }}
  </span>
</a>

剩下的就是将库存编号传递到详细信息视图...到目前为止,我已经这样做了:

(r'^inventory/details/(?P<stock_number>[-\w]+)/$',....

【问题讨论】:

    标签: django django-urls seo


    【解决方案1】:

    如果你有一页对应的数据库实体(例如车辆视图和车辆数据库表),你可以在模型类中使用定义get_absolute_url()方法。

    更多关于get_absolute_urlhttp://docs.djangoproject.com/en/dev/ref/models/instances/#get-absolute-url

    例如:

    class Vehicle(models.Model):
        name = ...
        year = ...
        fancy_stuff = ...
    
        def get_absolute_url(self):
            return u'%s-%s-%s' % (self.year, self.name, self.fancy_stuff)
    

    每当您使用车辆对象时,您都可以获得完整的“seo 友好”网址 ...


    我对过滤器的幼稚方法是:

    • urls.py 中编写适当的正则表达式,或者将整个字符串值传递给视图函数以进一步调度,或者将正则表达式设计为一致且结构化..

      (r'^filter/(?P<name>[a-zA-Z]+)/(?P<year>\d+)/(?P<type>\d+)/$)', ...
      
    • 进行适当的数据库查询

    • 显示..

    【讨论】:

      猜你喜欢
      • 2016-03-21
      • 2012-09-25
      • 2012-07-22
      • 2016-05-17
      • 2011-02-24
      • 2012-12-29
      • 2013-04-28
      • 2015-12-10
      • 2011-08-25
      相关资源
      最近更新 更多