Django Darstellung einer M2M abfrage auf der Website
Verfasst: Montag 7. September 2020, 14:54
Mein Problem ist das M2M Field, ich würde es gerne wie in https://i.stack.imgur.com/3KSpq.png, darsellen.
Ich habe folgende Modell Classe
und die Form classe sieht wie folgt aus:
class AForm (forms.ModelForm):
nun möchte ich dies auf der Website darstellen. Um das M2M FIeld anzupassen und alle anderen Felder standartmässig rendern zu lassen müsste ich jedoch rausfinden wie ich abfragen kann ob ein Feld das ModelMultipleChoiceField feld ist:
Leider bekomme ich das nicht hin, wie müsste die if Anweisung aussehen?
Ein weiteres Problem ist, das wenn ich das M2M Field einfach mit {{ field }} rendere, das dann nur die IDs angezeigt werden, so wie hier:
B besitzt jedoch ein Vor und Nachname, daher wäre es schön wenn es wie folgt gelistet wird:
Gibt es eventuell schon ein fertiges Widget das mir das M2M Field wie in dem Bild darstellt?
Ich habe folgende Modell Classe
Code: Alles auswählen
class A (models.Model):
name = models.CharField (max_length = 250)
Bs = models.ManyToManyField ('B')
Cs = models.ManyToManyField ('C')
class AForm (forms.ModelForm):
Code: Alles auswählen
class meta:
model = A
fields = ['name', 'Bs']
labels = {'name': 'name',
'Bs': 'list of B',
'Cs': 'list of C'}
Code: Alles auswählen
{% for field in AForm %}
{% if field.field == ModelMultipleChoiceField %}
blah
{% else %}
{{field}}
{% endif %}
{% endfor %}
Ein weiteres Problem ist, das wenn ich das M2M Field einfach mit {{ field }} rendere, das dann nur die IDs angezeigt werden, so wie hier:
Code: Alles auswählen
B (1)
B (2)
B (3)
B (4)
B (5)
Code: Alles auswählen
Vorname1 Nachname1
Vorname2 Nachname2
Vorname3 Nachname3
Vorname4 Nachname4
Vorname5 Nachname5