django完整的url在get_absolute_url [英] django full url in get_absolute_url

查看:747
本文介绍了django完整的url在get_absolute_url的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我在模板中调用我的模型get_absolute_url方法时,我想要一个绝对的/完整的url。在我的入门模型我有以下:

  def get_absolute_url(self):
return('blog_entry_detail',() ,{'year':self.pub_date.strftime(%Y),
'month':self.pub_date.strftime(%b)。lower(),
'day' self.pub_date.strftime(%d),
'slug':self.slug})

get_absolute_url = models.permalink(get_absolute_url)

  {object.get_absolute_url}} 

我想输出带有'http:// www。 example.com'



我想使用下面的行来获取当前的域名,但我不知道我会在哪里。

  from django.contrib.sites.models import Site 
current_site = Site.objects.get_current()。domain


解决方案

这可能适用于您:

 类文章(models.Model):
...
...
def get_absolute_url(self):
path = reverse('display_article',args = [self.slug])
returnhttp: /%s%s%(self.site,path)


I want to have a absolute/complete url when i call my models get_absolute_url method in template. in my entry model i have below:

def get_absolute_url(self):
    return ('blog_entry_detail', (), { 'year': self.pub_date.strftime("%Y"),
                                           'month': self.pub_date.strftime("%b").lower(),
                                           'day': self.pub_date.strftime("%d"),
                                           'slug': self.slug })

get_absolute_url = models.permalink(get_absolute_url)

in my template file:

{{object.get_absolute_url}}

I want to output the url prepended with 'http://www.example.com'

I want to use below lines to get the current domain name but i dont know where will i put it.

from django.contrib.sites.models import Site
current_site = Site.objects.get_current().domain

解决方案

This might work for you:

class Article(models.Model):
    ...
    ...
    def get_absolute_url(self):
        path = reverse('display_article', args=[self.slug])
        return "http://%s%s" % (self.site, path)

这篇关于django完整的url在get_absolute_url的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆