Django Template无法在{%url%}定义中呈现数据库CharField属性

时间:2011-03-26 10:34:02

标签: django django-templates

在我的模板中:

<a href="{% url x.content.url_internal_django_link  x.content.id %}"> 
  {{x.content.content}} </a>
数据库中的

x.content.url_django_link =“seek_detail” 当我在模板中手动输入网址名称时,它显示没有错误 -

  <a href="{% url seek_detail  x.content.id %}"> 
      {{x.content.content}} </a>

模型是:

class SoukFeedContent(models.Model):
    content = models.CharField(max_length = 400)
    url_internal_django_link = models.CharField(max_length = 30, blank = True)
    link_id = models.IntegerField(null = True, blank = True) 

2 个答案:

答案 0 :(得分:3)

{% url %}是内置模板标记:

  

返回给定的绝对URL匹配   查看其参数。

通过传递它x.content.url_internal_django_link,您告诉它在content.py文件中定义的x app中查找名为url_internal_django_link的视图。它没有按字符串值命中db。

您可能只需在模型中定义get_absolute_url方法,并将链接设为

<强> models.py:

class SoukFeedContent(models.Model):
    content = models.CharField(max_length = 400)
    link_id = models.IntegerField(null = True, blank = True) 

    @models.permalink
    def get_absolute_url(self):
        return ('seek_detail', [str(self.id)])

模板:假设x.content是您的SoukFeedContent模型的实例

<a href="{{ x.content.get_absolute_url }}">

答案 1 :(得分:1)

看看django 1.3 release notes

这可以在django 1.3中编写如下:

{% load url from future %}

<a href="{% url x.content.url_internal_django_link  x.content.id %}"> 
      {{x.content.content}} </a>