美文网首页
Django 模板中更好的使用 URL

Django 模板中更好的使用 URL

作者: 与蟒唯舞 | 来源:发表于2019-10-10 14:13 被阅读0次

    之前在 Template 里面调用 URL 地址都是用 {% url 'apps.views.post' post.id %} 这种方式来调用 urls.py 里面配置的 URL,而且 Template 里面会用到很多,如果当参数有变动的时候,重构将会是很麻烦的事情。

    下面通过在 models 中定义一个 get_absolute_url 方法:

    # -*- coding: utf-8 -*-
    from django.db import models
    from django.shortcuts import reverse
    
    class Post(models.Model):
        title = models.CharField('标题', max_length=200)
        slug = models.CharField('slug', max_length=255, blank=True)
        summary = models.TextField('摘要', blank=True)
        body = models.TextField('正文')
    
        def get_absolute_url(self):
           return reverse('post_view', args=[self.slug])
    

    在 urls.py 里面配置 URL:

    url(r'^post/(?P<slug>[a-zA-Z0-9_\-]+)[/]{0,1}$', 'apps.views.post', name='post_view'),
    

    将来在 Template 里面调用 URL 地址的时候就可以使用下面这种方式:

    {{ post.get_absolute_url }}
    

    相关文章

      网友评论

          本文标题:Django 模板中更好的使用 URL

          本文链接:https://www.haomeiwen.com/subject/qoqyyctx.html