Визуализировать метод внешнего ключа __str__ в шаблоне django - PullRequest
0 голосов
/ 08 сентября 2018
class A(models.Model):
   field1 = models.CharField(max_length=10)   
   field2 = models.IntegerField(default=0)

  def __str__(self):
    return self.field1 + str(self.field2)

class B(models.Model):
  a = models.ForeignKey(A)
  ...

Теперь в шаблоне я хочу отобразить атрибут "a" экземпляра модели B, используя: {{ binstance.a }} но похоже, что это либо пустая строка, либо ничего вообще.

Как отобразить метод str внешнего ключа в шаблоне?

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Может быть, я бы выбрал другой подход и создал бы шаблон тега

@register.filter(name='fullname')
def fullname(pk):
    b = B.objects.get(pk=pk)
    field1 = b.a.first_name
    field2 = b.a.last_name
    return "{} {}".format(field1, field2)

Тогда вы можете использовать {{binstance.pk|fullname}}

0 голосов
/ 08 сентября 2018

На самом деле это стандартное поведение django. Проверьте, передаете ли вы B экземпляр с шаблоном контекста и используете правильное имя переменной в вашем шаблоне.

...