Найти - Пользователи
Полная версия: MPTT
Начало » Django » MPTT
1
SergeyMiracle
Не могу чет никак понять я этот 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 %}
newca9h
Ну, для начала, зачем Вам в модели 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 %}
SergeyMiracle
Пасиб
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB