在Django应用程序模型中,如何获取url前缀

在Django应用程序模型中,如何获取url前缀,django,Django,我正在写一个名为blogengine 在rooturl.py中: url(r'^blog/', include('blogengine.urls')), 在myblogengine/models.py中 class Post(models.Model): title = models.CharField(max_length=200) pub_date = models.DateTimeField() text = models.TextField() def

我正在写一个名为
blogengine
在root
url.py
中:

url(r'^blog/', include('blogengine.urls')),
在my
blogengine/models.py中

class Post(models.Model):
    title = models.CharField(max_length=200)
    pub_date = models.DateTimeField()
    text = models.TextField()

    def get_absolute_url(self):
        return "/blog/post/%s/" % self.id
在这里,我定义了一个带有硬编码前缀
/blog/
的函数
get\u absolute\u url

我如何防止这种硬代码,并使用某种方法在
ROOT\u URLCONF

中获取前缀?不,这绝对不是这样做的方法。您的模型不应该关心前缀

相反,您应该使用提供的
reverse
函数来计算URL,无论前缀是什么:

def get_absolute_url(self):
    return reverse('blog-post', kwargs={'id': self.id})

不,绝对不是这样做的。您的模型不应该关心前缀

相反,您应该使用提供的
reverse
函数来计算URL,无论前缀是什么:

def get_absolute_url(self):
    return reverse('blog-post', kwargs={'id': self.id})

不,绝对不是这样做的。您的模型不应该关心前缀

相反,您应该使用提供的
reverse
函数来计算URL,无论前缀是什么:

def get_absolute_url(self):
    return reverse('blog-post', kwargs={'id': self.id})

不,绝对不是这样做的。您的模型不应该关心前缀

相反,您应该使用提供的
reverse
函数来计算URL,无论前缀是什么:

def get_absolute_url(self):
    return reverse('blog-post', kwargs={'id': self.id})
get_absolute_url()不是必需的:

url(r'^blog/$', views.post_list, name='post_list'),
url(r'^blog/(?P<post_id>[\w+-]*)/$', views.post_detail, name='post_detail')
url(r'^blog/$,views.post\u list,name='post\u list'),
url(r'^blog/(?P[\w+-]*)/$,views.post\u detail,name='post\u detail')
获取绝对url()不是必需的:

url(r'^blog/$', views.post_list, name='post_list'),
url(r'^blog/(?P<post_id>[\w+-]*)/$', views.post_detail, name='post_detail')
url(r'^blog/$,views.post\u list,name='post\u list'),
url(r'^blog/(?P[\w+-]*)/$,views.post\u detail,name='post\u detail')
获取绝对url()不是必需的:

url(r'^blog/$', views.post_list, name='post_list'),
url(r'^blog/(?P<post_id>[\w+-]*)/$', views.post_detail, name='post_detail')
url(r'^blog/$,views.post\u list,name='post\u list'),
url(r'^blog/(?P[\w+-]*)/$,views.post\u detail,name='post\u detail')
获取绝对url()不是必需的:

url(r'^blog/$', views.post_list, name='post_list'),
url(r'^blog/(?P<post_id>[\w+-]*)/$', views.post_detail, name='post_detail')
url(r'^blog/$,views.post\u list,name='post\u list'),
url(r'^blog/(?P[\w+-]*)/$,views.post\u detail,name='post\u detail')

您可以使用命名url的反向解析。这里是详细信息的链接

这是一个例子

url(r'^post/(?P<id>\d+)/$', post_view, name='post_detail'),

您可以使用命名url的反向解析。这里是详细信息的链接

这是一个例子

url(r'^post/(?P<id>\d+)/$', post_view, name='post_detail'),

您可以使用命名url的反向解析。这里是详细信息的链接

这是一个例子

url(r'^post/(?P<id>\d+)/$', post_view, name='post_detail'),

您可以使用命名url的反向解析。这里是详细信息的链接

这是一个例子

url(r'^post/(?P<id>\d+)/$', post_view, name='post_detail'),

谢谢你的回答,这很有帮助。通过命名url dispatcher,我可以在python和模板代码中使用反向解析,然后删除硬代码:)谢谢您的回答,这非常有帮助。通过命名url dispatcher,我可以在python和模板代码中使用反向解析,然后删除硬代码:)谢谢您的回答,这非常有帮助。通过命名url dispatcher,我可以在python和模板代码中使用反向解析,然后删除硬代码:)谢谢您的回答,这非常有帮助。我可以通过命名url dispatcher在python和模板代码中使用反向解析,然后删除硬代码:)