4

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

  1. 查看可用车辆时,我会收到如下链接:http ://www.url.com/2006-Acura-MDX-Technology-Package
  2. 我也有一个过滤器页面,所以在这里,URL 会根据选择的过滤器而改变,例如:http ://www.url.com/2007-Nissan或http://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]+)/$',....
4

1 回答 1

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

  • 展示 ..
于 2009-12-08T11:16:53.080 回答