Я пытаюсь установить связь с другой моделью, используя FK в django, но я не могу вызывать поля модели, связанные с FK, в шаблонах django. В шаблоне, когда я вызываю «provider.name», в результате отображается «Нет». У меня есть 5 разных поставщиков, и я могу видеть их у администратора. У меня есть поставщики, и я получил продукты, как показано ниже:
class Product(models.Model):
title = models.CharField(max_length=500)
description = models.TextField(blank=True, null=True)
price = models.DecimalField(max_digits=20, decimal_places=2)
sku = models.CharField(null=True, max_length=100)
url = models.URLField(blank=True)
slug = models.SlugField(unique=True)
providers = models.ManyToManyField('Provider', blank=True)
def __unicode__(self):
return self.title
class Provider(models.Model):
name = models.CharField(max_length=200)
description = models.TextField(null=True, blank=True)
logo = models.ImageField(upload_to='products/')
shipping_method = models.CharField(max_length=250)
shipping_time = models.CharField(max_length=250)
return_policy = models.CharField(max_length=200)
free_delivery = models.CharField(max_length=200)
customer_service_number = models.CharField(max_length=200)
shipping_charges = models.CharField(max_length=200)
def __unicode__(self):
return self.name
В шаблоне, как я это называю:
{% with provider=object.providers %}
{{ provider.name }}
{% endwith %}
В результате он показывает "None"
. Я пытаюсь вызвать провайдера в другом шаблоне. В своих собственных общих представлениях List/Detail он работает просто отлично. Я пытаюсь вызвать его в разных шаблонах приложений. Пожалуйста, порекомендуйте.
Обновлять................
Мой search.html для поисковой системы whoosh включает
{% for result in page.object_list %}
<div class="col-lg-1-5 col-md-3 col-sm-4 col-xs-12">
<div class="pbox">
<div class="photo">
<a href="{{ result.object.get_absolute_url }}"><img src="{{ result.object.get_image_url }}" alt="product"></a>
</div>
<div class="info">
<div class="url">
name
{% for item in result.object.providers.all %}
{{ result.provider.name }}
{% endfor %}
</div>
<div class="description">
{{ result.object.description|truncatewords:7 }}
</div>
<div class="price">
{{ result.object.price|intcomma }}
</div>
</div>
</div>
</div>
Поскольку я не использую какой-либо ModelManager или просто использую менеджеры по умолчанию, предварительно определенные для моделей. Я добавил строку кода в модель приложения продукта следующим образом:
def get_provider(self):
item = self.providers.all()
return item