0
我想在我的数据库中获得所有手稿的列表,打印出他们每个人的货架标记,并且在他们链接到其他手稿的情况下也打印出那些手稿的货架标记。Django查询自我指涉多对多关系
这里是我的模型是这样的:
class MSS(models.Model):
shelfmark = models.CharField(max_length=50)
MSSLink = models.ManyToManyField('self',through='MSSLink',symmetrical=False)
[...]
class MSSLink(models.Model):
link1 = models.ForeignKey('MSS', related_name='First_MSS')
link2 = models.ForeignKey('MSS', related_name='Second_MSS')
[...]
这里是views.py
def show_all_MSS(request):
all_MSS = MSS.objects.select_related().all() # get all MSS
t = loader.get_template('list.html')
c = Context({'all_MSS': all_MSS, })
return HttpResponse(t.render(c))
接下来的问题是如何在我的模板做的代码。我想过做这样的事情,但我不知道我怎么可以在for循环已被链接到另一个MS测试是否当前的MS,如果是如何显示这些shelfmarks:
{% if all_MSS %}
<ul>
{% for i in all_MSS %}
<li><a href="/MSS/{{ i.shelfmark}}/">{{ i.shelfmark }}</a></li>
{% if i.MSSLink %}
<p>This MS is linked to the following MSS: {{ i.MSSLink.link1 }}</p>
{% endif %}
{% endfor %}
</ul>
{% else %}
<p>No MSS found</p>
{% endif %}
我需要MSSLink表来获取关于谁做之间链接的用户信息马努脚本,链接的时间以及链接的原因。为了节省空间,我在我的问题中省略了这些字段。对困惑感到抱歉。您的模板代码是否仅列出所有手稿?我正在寻找一种列出所有手稿的方法,如果它们也与其他手稿链接,也会显示这些货架标记。非常感谢! – DigitalMusicology
你将需要第三个循环:'{%for l2 in l.links.all%}' – Udi