Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在django中选择向后关联_Django_Django Models - Fatal编程技术网

在django中选择向后关联

在django中选择向后关联,django,django-models,Django,Django Models,我正在写一个Django项目 在courses/models.py中 class Category(models.Model): title = models.CharField(max_length=50) class Language(models.Model): category = models.ForeignKey(Category, on_delete=models.CASCADE) title = models.CharField(max_length=5

我正在写一个Django项目

courses/models.py中

class Category(models.Model):
    title = models.CharField(max_length=50)

class Language(models.Model):
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    title = models.CharField(max_length=50)

class Course(models.Model):
    name = models.CharField(max_length=250)
    language = models.ForeignKey(Language, on_delete=models.CASCADE)
我想获得所有
类别的列表
,然后遍历指定类别的每种
语言

class Courses(ListView):
    template_name = 'courses/index.html'
    model = Course
    context_object_name = 'courses'

    def get_context_data(self, **kwargs):
        context = super(Courses, self).get_context_data(**kwargs)
        categories = Category.objects.all()
        context['categories'] = categories
        return context
在template
courses/index.html
中,我想显示基于类别的语言列表

{% for category in categories %}
    {{ category.title }}
    <li>lis of languages in this category</li>
{% endfor %}
{%用于类别中的类别%}
{{category.title}}
  • 这类语言的列表
  • {%endfor%}

    如何在向后关联的数据上循环?

    Django创建了一个关系,可通过
    modelname\u set
    键在模板中访问该关系

    在您的情况下,您必须迭代:
    category.language\u set.all

    {% for category in categories %}
        {{ category.title }}
        {% for language in category.language_set.all %}
            <li>{{ language.title }}</li>
        {% endfor %}
    {% endfor %}
    
    {%用于类别中的类别%}
    {{category.title}}
    {category.language_set.all%}中的语言为%
    
  • {{language.title}
  • {%endfor%} {%endfor%}
    Django创建了一个关系,该关系可以通过
    modelname\u set
    键在模板中访问

    在您的情况下,您必须迭代:
    category.language\u set.all

    {% for category in categories %}
        {{ category.title }}
        {% for language in category.language_set.all %}
            <li>{{ language.title }}</li>
        {% endfor %}
    {% endfor %}
    
    {%用于类别中的类别%}
    {{category.title}}
    {category.language_set.all%}中的语言为%
    
  • {{language.title}
  • {%endfor%} {%endfor%}
    \u set完成这项工作。 在您的情况下,此代码必须有效:

    {category.language_set.all%}中的语言为%
  • {{language.title}
  • {%endfor%}

    \u set执行此操作。 在您的情况下,此代码必须有效:

    {category.language_set.all%}中的语言为%
  • {{language.title}
  • {%endfor%}