2013-08-31 3 views
0

Я пытаюсь отобразить контрольные значения внешнего ключа в шаблоне. Мои модели как нижеОтображение ссылки на внешний ключ Значение

class CustomerType(models.Model): 

    customer_type_id  = models.AutoField(primary_key=True) 
    customer_type_name  = models.CharField(max_length=15) 

class Prospects(models.Model): 

    prospect_id   = models.AutoField(primary_key=True) 
    customer_type  = models.ForeignKey(CustomerType) 

Мой запрос

prospectList = Prospects.objects.using (settings.DATABASE_CONF).filter (status=1).values 
     ('prospect_id' , 'customer_type') 

Шаблон

<td> 
{{ prospect.customer_type_id }} 
</td> 

Im смог получить только 'customer_type_id', но я хочу, чтобы отобразить 'customer_type_name'. Как это сделать. Я попробовал вариант «__», но это не работает.

+0

Имеет ли '{{перспектива.customer_type.queryset.customer_type_name}}' или '{{перспектива.customer_type.customer_type_name}}' работа? – alecxe

+0

Ни один из них не работает. – syv

+1

Я боюсь, что это может быть из-за 'ценностей', не могли бы вы опустить его для целей тестирования? – alecxe

ответ

0

Когда вы используете values, внешние ключи не соблюдаются. От Django documentation:

Если у вас есть поле с именем Foo, который является ForeignKey, значения по умолчанию() вызов возвращает словарь ключ с именем foo_id, так как это имя скрытого атрибута модели, которая хранит фактическое значение (атрибут foo относится к соответствующей модели). Когда вы вызываете значения() и передаете имена полей, вы можете передать либо foo, либо foo_id, и вы вернете ту же самую вещь (ключ словаря будет соответствовать имени поля, которое вы передали).

Как @alecxe сказал, опустите .values звонок.

Смежные вопросы