【问题标题】:How to retrieve objects with a foreign key self如何使用外键 self 检索对象
【发布时间】:2010-10-15 22:46:41
【问题描述】:

我有一个模型类别,它有一个对其自身的 FK 引用。 如何将数据发送到模板并使其看起来像这样

  • 类别 1
    • 列表项
    • 列表项
  • 类别 2
    • 列表项
    • 列表项

【问题讨论】:

    标签: django django-models foreign-keys


    【解决方案1】:

    您可能正在寻找这样的东西:

    models.py

    from django.db import models
    
    class Category(models.Model):
        name = models.CharField(max_length=100)
        parent = models.ForeignKey('self', blank=True, null=True, related_name='child')
        def __unicode__(self):
            return self.name
        class Meta:
            verbose_name_plural = 'categories'
            ordering = ['name']
    

    views.py

    from myapp.models import Category # Change 'myapp' to your applications name.
    from django.shortcuts import render_to_response
    
    def category(request)
        cat_list = Category.objects.select_related().filter(parent=None)
        return render_to_response('template.html', { 'cat_list': cat_list })
    

    模板.html

    <ul>
    {% for cat in cat_list %}
        <li>{{ cat.name }}</li>
        <ul>
        {% for item in cat.child.all %}
            <li>{{ item.name }}</li>
        {% endfor %}
        </ul>
    {% endfor %}
    </ul>
    

    【讨论】:

      【解决方案2】:

      看起来您正在尝试在模板中进行递归。这可能会有所帮助: http://www.undefinedfire.com/lab/recursion-django-templates/

      【讨论】:

        猜你喜欢
        • 2015-02-09
        • 2013-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-06
        • 2017-04-22
        相关资源
        最近更新 更多