2009-12-08 104 views
4

我想有两种方式部署动态的URL我的应用程序:动态SEO友好的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

如果您有一个数据库实体对应一个页面(例如,车辆视图和Vehicle DB表),您可以在模型类中使用define 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) 

每当你与车载物的工作,你可以得到完整的 '搜索引擎友好的' 网址...


我的过滤器的天真方法将是:

  • urls.py适当的正则表达式,或者传递整个字符串值,为进一步调度视图功能或设计的正则表达式是一致的结构化..

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

  • display ..
+0

我设法想出了一个解决方案... thnx – Stephen 2009-12-09 04:32:19