【问题标题】:populating a category menu with sub-categories dynamically in djnago template在 django 模板中动态填充具有子类别的类别菜单
【发布时间】:2020-07-06 12:17:22
【问题描述】:

我有两个django模型,第一个是主类别表,另一个是与主模型链接的子类别模型,这意味着每个类别都有多个子类别。

使用 {% for *** %}{% endfor %} in 和

在侧边菜单中动态填充模板的最佳方法是什么?
  • 例如:

    这里是models.py:

    
     class cate(models.Model):
        ref = models.CharField(max_length=50)
        name = models.CharField(max_length = 100, db_index=True)
        slug = models.SlugField(max_length=50) 
        def __str__(self):
            return self.name
    
    
    class subcate(models.Model):
        sect = models.ForeignKey(cate, on_delete=models.CASCADE)
        name = name = models.CharField(max_length = 100, db_index=True)
        def __str__(self):
            return self.name
    
    
    
    
  • 【问题讨论】:

      标签: python django django-models django-views django-templates


      【解决方案1】:

      外键可以关联回同一个模型。这样一个子类别只是一个类别实例,它有另一个类别作为父类别。要与同一个模型相关,您可以使用字符串 self 而不是使用类名:

      parent = models.ForeignKey("self", on_delete=models.CASCADE, null=True, blank=True, related_name="sub_categories")
      

      使用这个,如果一个类别没有父类别,它是一个顶级类别,如果它有一个父类别,那么它是一个子类别。

      希望能解决您的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-01
        • 2012-03-30
        • 1970-01-01
        • 2013-04-03
        • 1970-01-01
        • 1970-01-01
        • 2015-07-14
        • 1970-01-01
        相关资源
        最近更新 更多