我有3个模型,我试图访问并显示多对多关系(Django)上“through”表中的数据。在
我试着展示三件事:
我没能做最后一个。它来自多对多关系的“贯通”链接);有什么想法吗?在
模型.py:
class Language(models.Model):
LANG = (
('FR', 'FR'),
('EN', 'EN'),
)
lang_selected = models.CharField(max_length=3, choices=LANG, verbose_name='Availlable language')
def __str__(self):
return self.lang_selected
class Artwork(models.Model):
artwork_image = models.CharField(max_length=100, null=True, verbose_name="Artwork image")
version = models.ManyToManyField(Language, through='Artwork_language', verbose_name="link artwork -> language")
def __str__(self):
return self.artwork_image
class Artwork_language(models.Model):
Artwork = models.ForeignKey(Artwork, on_delete=models.CASCADE)
Language = models.ForeignKey(Language, on_delete=models.CASCADE)
artwork_name = models.CharField(max_length=100, null=True, verbose_name="Artwork name")
def __str__(self):
return str(self.Artwork) + " translated to " + str(self.Language)
视图.py
^{pr2}$模板(accueil.html)在
<h1>Image | Language translation | Translated name</h1>
{% for artwork in artwork %}
Image : {{ artwork.artwork_image }} <br/>
{% for lang in artwork.version.all %}
Language translation : {{ lang }} <br/>
Translated name : {{ ### }}
{% for i in lang.artwork_language %}
{{ i.artwork_name }}
{% endfor %}
<br/>
{% endfor %}
我试了很多东西,但似乎都没用,我是不是走错了路?在
正如我在评论中所说,你应该遵循与Artwork_language的关系,然后从FK到language:
访问多对多字段的相关管理器时,不能引用through模型的属性。您可以在through模型中使用fk的默认
related_name
,但是:相关问题 更多 >
编程相关推荐