Django ManyToManyField 引用其他应用程序 returns "app.model.None"

Django ManyToManyField referring to other application returns "app.model.None"

我正在尝试从另一个应用程序获取模型 ManyToManyField 并制作一个列表,但在模板中尝试调用它时 returns "app1.Model.None"。

app1.models

class Illness(models.Model):
    title = models.CharField(max_length=255)

app2.models

class Client(models.Model):
    illnesses = models.ManyToManyField('app1.Illness', blank=True)

client.html

    <p>{{ client.illnesses }}</p>

app2.views.py

class TheDetailView(generic.DetailView):
    template_name = 'client.html'
    model = Client

HTML 渲染 returns 仅 "app1.Illness.None" 该部分。我知道我会做一个 {% for %} 循环来列出它们,但是当我尝试该部分只是保持空白时。我究竟做错了什么?感谢您提前提供的所有帮助。

一个manager被repented为<i>ModelName</i>.None,例如Client.objects也会显示为Client.None.

为了访问 ManyToManyField 关系中的项目,您需要访问查询集,例如使用 .all(),并迭代它,如果您想显示单个元素,所以:

<p>{% <b>for</b> illness in client.illnesses<b>.all</b> %}
    {{ illness }}
{% endfor %}</p>

或者如果你想渲染标题:

<p>{% for illness in client.illnesses.all %}
    {{ illness<b>.title</b> }}
{% endfor %}</p>