Форум сайта python.su
Добрый вечер.
Есть 2 модели:
class GenCats(models.Model): class Meta(): managed = False db_table = 'GenCats' ... code = models.IntegerField(db_column='Code') name = models.CharField(max_length=150, db_column='Name') ... class GoodsFolders(models.Model): class Meta(): managed = False db_table = 'GoodsFolders' ... code = models.CharField(max_length=10, db_column='Code') name = models.CharField(max_length=150, db_column='Name') parent = models.ForeignKey('self', db_column='ParentID_Ref', related_name='parentCat', db_index=True) gen_cat = models.ForeignKey(GenCats, db_column='GenCatID_Ref', related_name='mainCat', db_index=True)
catalog = GenCats.objects.select_related('mainCat', 'parentCat')
{% for main in Catalog %} {{ main.code }}<br> {{ main.name }}<br> {% for subCat in main.mainCat.all %} ----> {{ subCat.code }} ---- > {{ subCat.name }}<br> {% for subCat2 in subCat.parentCat.all %} >>>>>>>> {{ subCat2.code }} >>>>>>>> > {{ subCat2.name }}<br> {% for subCat3 in subCat2.parentCat.all %} ------------------------------------> {{ subCat2.code }} >>>>>>>> > {{ subCat2.name }}<br> {% endfor %} {% endfor %} {% endfor %} <hr> {% endfor %}
Отредактировано scurramalum (Фев. 21, 2015 14:59:09)
Офлайн
Если написать запрос типа:
catalog = GenCats.objects.using('1C').select_related('mainCat').values('id' ,'name', 'code', 'mainCat__code', 'mainCat__name', 'mainCat__parentCat__code', 'mainCat__parentCat__name', 'mainCat__parentCat__parentCat__code', 'mainCat__parentCat__parentCat__name',)
Офлайн
Всем спасибо за внимание, проблему решил. Решение:
В представлении:
catalog = GenCats.objects.using('1C').prefetch_related('mainCat__parentCat__parentCat')
<ul> {% for category in Catalog %} <li>{{ category.name }}</li> <ul style="padding-left: 20px"> {% for cats in category.mainCat.all %} <li>{{ cats.name }}</li> <ul style="padding-left: 20px"> {% for subCats in cats.parentCat.all %} <li>{{ subCats.name }}</li> <ul style="padding-left: 30px"> {% for lastCat in subCats.parentCat.all %} <li>{{ lastCat.name }}</li> {% endfor %} </ul> {% endfor %} </ul> {% endfor %} </ul> {% endfor %} </ul>
Отредактировано scurramalum (Фев. 22, 2015 08:57:28)
Офлайн