Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 19, 2012 16:32:47

SergeyMiracle
Зарегистрирован: 2012-10-11
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

MPTT

Не могу чет никак понять я этот mptt гадский. есть две модели

class Category(MPTTModel):
        name = models.CharField(max_length=200)
        slug = models.SlugField()
        parent = TreeForeignKey('self', blank=True, null=True, related_name='child')
        description = models.TextField(blank=True,help_text="Optional")

class Product(MPTTModel):
	title = models.CharField(max_length=100)
	longtitle = models.CharField(max_length=100)
	slug = models.SlugField(max_length=100,help_text="Отображение в URL")
	parent = TreeForeignKey(Category, blank=True, null=True, related_name='child_product')
	image = models.ImageField(upload_to='images')
	album = models.ForeignKey(Gallery, blank=True)
	pdf = models.FileField(upload_to='pdf')
	text = models.TextField()

Все что нужно, это вывести product по категориям:

Категория
  субкатегория
    продукт 1 
    продукт 2

Подскажите как правильно сделать? Категории по примеру из доков вывел, как туда впихнуть продукты не пойму никак, двое суток уже пробую

{% recursetree nodes %}
        
        <li>
              {{ node.name }}
            {% if not node.is_leaf_node %}
           
                <ul class="children">
                    {{ children }}
           
                </ul>
              
            {% endif %}
        </li>
    {% endrecursetree %}

Отредактировано SergeyMiracle (Окт. 19, 2012 16:33:13)

Офлайн

#2 Окт. 20, 2012 14:03:43

newca9h
Зарегистрирован: 2012-05-28
Сообщения: 46
Репутация: +  3  -
Профиль   Отправить e-mail  

MPTT

Ну, для начала, зачем Вам в модели Product использование вложенности MPTT? Используйте обычный ForeignKey. Что касается отображения в шаблоне, то, насколько мне помнится, в отношениях ForeignKey и прочих, по умолчанию всегда есть методы, позволяющие обращаться из родителя к дочерним и наоборот. В Вашем случае, этот метод в шаблоне должен иметь вид(хотя я могу ошибаться, уточните):

{% recursetree nodes %}
    <li>
        {{ node.name }}
        {% if node.product %}
            {% for item in node.product %}
                {{ item.name }}
            {% endfor %}
        {% endif %}
        {% if not node.is_leaf_node %}
           
            <ul class="children">
                {{ children }}
            </ul>
        {% endif %}
    </li>
{% endrecursetree %}

Офлайн

#3 Окт. 22, 2012 18:32:40

SergeyMiracle
Зарегистрирован: 2012-10-11
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

MPTT

Пасиб

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version