【问题标题】:"None" shows instead name of object Django“无”显示对象 Django 的名称
【发布时间】:2015-08-21 16:19:42
【问题描述】:

我有这样一个错误:在我的模型中有两个:主题和部分。在 section-model 中有一个字段保存了本节中的每个主题。

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

有人能说是怎么回事吗?谢谢您,提前关注。

【问题讨论】:

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


    【解决方案1】:

    由于您使用 ManyToManyField 来引用您的 Section,您需要在模板中访问该集合,然后从中提取信息。

    这样就足够了:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 2017-02-06
      相关资源
      最近更新 更多