/ / Django: Zobraziť vzťah reverzných objektov v šablónach - django, django-templates

Django: Zobrazenie vzťahu reverzného objektu v šablónach - django, django-šablóny

Na stránke šablón, keď chcem prechádzať cez premenné objektu súvisiaceho s cudzím kľúčom, používam funkciu set.all.

Napríklad:

{% for object2_info in object1.object2_set.all %}
{[object2_info.something}}
{% endfor %}

Čo nechápem je, ako to môžem urobiť opačne? Myslíte si, že by to bolo niečo také:

{% for object1_info in object2.object1_set.all %}
{[object1_info.something}}
{% endfor %}

ale to nie je tento prípad.

Akákoľvek pomoc by bola ocenená.

odpovede:

1 pre odpoveď č. 1

Závisí to od definícií vášho modelu. Predpokladajme, že máte nasledujúci vzťah medzi mnohými:

class Autor(models.Model):
name = models.CharField(max_length=42)

class Entry(models.Model):
title = models.CharField(max_length=21)
authors = models.ManyToManyField(Author)

Tu môžeme získať prístup k záznamom ako vo vašom prvom príklade za predpokladu, že prejdeme ako Author namietať proti našej šablóne:

{% for entry in author.entry_set.all %}
{{ entry.title }}
{% endfor %}

Ale neexistuje author_set na Entry, pretože sme to výslovne nazvali: authors.

{% for author in entry.authors.all %}
{{ author.name }}
{% endfor %}

Viac o tomto môžete prečítať úradnú dokumentáciu.