/ / Шаблон Django не відображає атрибут бази даних CharField бази даних у визначенні {% url%} - django, django-templates

Шаблон Django не надає атрибуту CharField бази даних у визначенні {% url%} - django, django-templates

У моєму шаблоні:

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

x.content.url_django_link = "search_detail" у db
Коли я вручну ввожу назву URL-адреси в такий шаблон, він не показує помилок,

  <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)

Відповіді:

3 для відповіді № 1

в {% url %} це вбудований тег шаблону, який:

Повертає задану абсолютну відповідність URL-адреси перегляд з його параметрами.

Проходячи його x.content.url_internal_django_link, ви говорите йому шукати вид з назвою url_internal_django_link всередині додатка x, визначеного у файлі content.py. Не вдаряється 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 для відповіді № 2

Подивись на нотатки до випуску django 1.3.

Це можна записати наступним чином у django 1.3:

{% load url from future %}

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