Форум сайта python.su
Не могу чет никак понять я этот 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()
Категория субкатегория продукт 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)
Офлайн
Ну, для начала, зачем Вам в модели 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 %}
Офлайн
Пасиб
Офлайн