Вопрос

Я работаю над категорией и подкатегориями с Модель данных, в этой части все в порядке, но мне нужно использовать свою категорию и подкатегории в навигации по меню, я пытаюсь использовать это Меню Jquery , и я визуализирую свое меню с подкатегориями, но я запутался с рендерингом подкатегорий следующим образом:

<ul>
  <li>
    <a href="#">Category</a>

    <!--subcategories-->
   <span>Subcategory 1 </span>
   <span>Subcategory 2 </span>
   ...
  </li>
  ....
  ....
 </ul>

Моя проблема:в модели данных:с «я» я не знаю, как в этом случае сделать for для создания подкатегорий (родителем является само поле).

class Category(models.Model):
 name = models.CharField(core=True, maxlength=200)
 slug = models.SlugField(prepopulate_from=('name',))
 parent = models.ForeignKey('self', blank=True, null=True, related_name='child')
 description = models.TextField(blank=True,help_text="Optional")

Спасибо

Это было полезно?

Решение

Получите все категории верхнего уровня, используя что-то вроде

top_level_cats = Category.objects.filter(parent__isnull=True)

Затем:

for tlc in top_level_cats:
    #do the HTML for the top-level category
    for clc in tlc.child.all():
        #do the HTML for the children of clc

Если у вас есть несколько категорий уровней, где-то там должен быть рекурсивный вызов, но это дает основную суть.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top