Джанго, категория и подкатегории - PullRequest
1 голос
/ 16 сентября 2009

я работаю с категорией и подкатегориями с DataModel , в этой части все в порядке, но мне нужно использовать мою категорию и подкатегории в моем меню, я пытаюсь использовать это меню 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")

Спасибо

1 Ответ

2 голосов
/ 16 сентября 2009

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

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

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

...