繁体   English   中英

“无”显示对象Django的名称

[英]“None” shows instead name of object Django

我有一个错误:我的模型中有两个:主题和部分。 在节模型中,存在一个字段,用于保存此节中的每个主题。

class Section(models.Model):
    """Model for a section."""
    ename = models.CharField(max_length=255)
    name = models.CharField(max_length=255)
    definition = models.CharField(max_length=500)
    picture = models.ImageField(upload_to="physics/section", blank=True)
    subjects = models.ManyToManyField("Subject")

    def __str__(self):
        return self.name


class Subject(models.Model):
    """Model for a subject in section."""
    ename = models.CharField(max_length=255)
    name = models.CharField(max_length=255)
    definition = models.CharField(max_length=500)
    content = models.TextField()

    def __str__(self):
        return self.name

我试图显示本节中的每个主题。 我的意见和以下模板:意见:

def section(request, section_name):
    section = get_object_or_404(Section, ename=section_name)
    return render(request, 'section.html', {'section': section})

模板:

{% extends 'base.html' %}
{% block content %}
{{ section.name }}
{{ section.subjects }}
{% endblock content %}

但是“无”显示在本节的页面中。 看起来是这样的:

(此处是真实的学科名称)Physics.Subject.None

有人可以说出什么问题吗? 预先感谢您的关注。

由于您使用的是ManyToManyField来引用您的Section您需要访问模板中的那个set,然后从中获取信息。

这样的事情就足够了:

{% extends 'base.html' %}
{% block content %}
{{ section.name }}
{% for subject in section.subjects_set.all %}
{{ subject.name }}
{% endfor %}
{% endblock content %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM