如何制作一个;“美丽”;带有Django Python的URL

如何制作一个;“美丽”;带有Django Python的URL,django,url-rewriting,django-forms,Django,Url Rewriting,Django Forms,我有一个URL产品的形式: /capidahl?fecha=2014-06-23&hora1=00&minutos1=00&hora2=23&minutos2=59 我想把它缩短,比如capidahl/2014/06/24。 如何使用Django重写URL?这在Django中很容易做到。在URL.py中,指定处理程序: (r'^capidahl/(?p[0-9-.]+)/*(?p[0-9]+)/*(?p[0-9]+),“我的函数”) 然后,该函数处理变量: def my_function(req

我有一个URL产品的形式:

/capidahl?fecha=2014-06-23&hora1=00&minutos1=00&hora2=23&minutos2=59

我想把它缩短,比如
capidahl/2014/06/24。


如何使用Django重写URL?

这在Django中很容易做到。在URL.py中,指定处理程序:

(r'^capidahl/(?p[0-9-.]+)/*(?p[0-9]+)/*(?p[0-9]+),“我的函数”)

然后,该函数处理变量:

def my_function(request, fecha, hora='12', minutos='00'):
    do something

解释如下:

以下是一个关于如何在模型级别执行此操作的示例(根据需要进行更改):


这就是URL.py中的正则表达式?是的。漂亮,不是吗?如果允许使用任何普通字符,甚至可以使用[a-zA-Z0-9-]+为什么使用-1@贾斯坦尼尔
class Article(models.Model):
    title = models.CharField( max_length = 255 )
    date_publish = models.DateTimeField(auto_now_add = True)
    def get_absolute_url(self):
        return 'capidahl/%s/%s/%s' %(self.date_publish.year, self.date_publish.strftime('%m'),  self.date_publish.strftime('%d'))