Получение значений поля ManyToMany в шаблоне - PullRequest
0 голосов
/ 06 февраля 2012

У меня проблема с получением значений полей ManyToMany в шаблоне, вот код:

models.py

class Client(models.Model):
name = models.CharField(max_length=18,help_text='Nazwa firmy klienta, musi być unikalna', verbose_name='Klienci')
slug = models.SlugField(max_length=255,help_text="Wartość sugerowana automatycznie na podstawie nazwy", unique=True, verbose_name='Odnośnik')
iconwhite =  models.ImageField(upload_to='iconswhite', verbose_name='ikona na białym tle', blank=True)
class Meta:
    ordering = ['name']
    verbose_name = "Klient"
def __str__(self):
    return self.name
def __unicode__(self):
    return self.name
def get_absolute_url(self):
    return '/clients/%s/' % self.slug

models.py

class Projects(models.Model):
def get_picture_path(instance, filename):
    return os.path.join('picture', str(instance.id), filename)
client = models.ManyToManyField(Client, verbose_name='Klient')
title = models.CharField(max_length=255, verbose_name='Tytuł projektu')
slug = models.SlugField(max_length=255, unique=True, verbose_name='Odnośnik')
status = models.CharField(max_length=1, choices=STATUS_CHOICES, default='d')
picture = models.ImageField(upload_to=get_picture_path, blank=True, null=True, help_text='Miniatura widoczna na str głównej oraz w galerii projektow')
class Meta:
    verbose_name = "Projekt"
def __str__(self):
    return self.title
def __unicode__(self):
    return self.title
def get_absolute_url(self):
    return '/projects/' + self.slug + '/' 

index.html

<div class="grid_4">
    <div class="container_img">
        <div><a href="/projects/{{ i.slug }}/"><img src="site_media/media/{{i.picture}}" /></a></div>
        <div class="client_icon">
        {% for client in projects.client.all %}
        <img src="site_media/media/{{client.iconwhite}}" />
        {% endfor %}
        </div>
    </div>
    <div class="project_description">
        <a href="/projects/{{ i.slug }}/"><p class="projects_title">{{ i.title }}</p></a>
        <p class="projects_description">{{ i.description|safe|removetags:"p br div"|truncatewords:9 }} <a href="/projects/{{ i.slug }}/"><span>see more »</span></a></p>
    </div>
</div>

Я проверил другие похожие темы, не знаю, что мне здесь не хватает: (

1 Ответ

4 голосов
/ 06 февраля 2012

Если i - это переменная, содержащая индивидуальное project (судя по контексту в вашем HTML), вам потребуется:

{% for client in i.client.all %}
    {{ client }}
{% endfor %}
...