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>
我正在尝试从另一个应用程序获取模型 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>