动态SEO友好的URLs

4
我希望为我的应用程序部署动态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]+)/$',....
1个回答

1
如果您有一个与页面对应的数据库实体(例如,车辆视图和Vehicle DB表),则可以在模型类中定义get_absolute_url()方法。
更多关于get_absolute_url的信息:http://docs.djangoproject.com/en/dev/ref/models/instances/#get-absolute-url

e.g:

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+)/$)', ...
    
  • 进行适当的数据库查询

  • 显示 ..

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接