Forum: PC-Programmierung Django (Python) - Many to one Relation in Template


von djangoneuling (Gast)


Lesenswert?

Hallo,

nach einigen Versuchen und Googlearbeiten bekomme ich es leider nicht 
hin in Django eine Many To One Relation im Template zu iterieren.

Vielleicht könnte mir ein Profi hier kurz die passende Antwort liefern:

Model sieht wie folgt aus:
1
class Prices(models.Model):
2
  divClass = models.CharField(max_length=20)
3
  liClass = models.CharField(max_length=20)
4
  Category = models.CharField(max_length=20)
5
  Price = models.CharField(max_length=20)
6
  SubmitURL = models.URLField()
7
  
8
class PriceProperties(models.Model):  
9
  Price = models.ForeignKey(Prices, on_delete=models.CASCADE)
10
  Property = models.CharField(max_length=60)

In der View wird wie folgt vorbereitet fürs Templatetoolkit:
1
context['Prices'] = Prices.objects.all()
2
return HttpResponse(template.render(context))

Und im Template:
1
{% block pricing %}
2
  <div id="pricing">
3
    <div class="container">
4
      <div class="text-center">
5
        <h3>Pricing Table</h3>
6
        <p>{{ GlobalSetting.PriceText }}</p>
7
      </div>
8
      {{ dummy }}
9
      <div class="pricing-area text-center">
10
                <div class="row">
11
        {% for p in Prices %}
12
                    <div class="col-sm-4 plan {{ p.divClass }} wow fadeInDown" data-wow-offset="0" data-wow-delay="0.2s">
13
                        <ul>
14
                            <li class="{{ p.liClass }}">
15
                                <h2>{{ p.Category }}</h2>
16
                                <span>{{ p.Price }}</span>
17
                            </li>
18
              {% for x in p.PriceProperties_set.objects.all %}
19
                            <li>{{ x.Property }}</li>
20
              {% endfor %}
21
                            <li class="plan-action">
22
                                {{ p.SubmitURL }}
23
                            </li>
24
                        </ul>
25
                    </div>
26
        {% endfor %}
27
  {% endblock %}

Das Problem ist, dass die Schleife mit x.Property nicht durchlaufen 
wird. Weiß jemand warum?

Viele Grüße

von Joachim S. (oyo)


Lesenswert?

djangoneuling schrieb:
>               {% for x in p.PriceProperties_set.objects.all %}
> Das Problem ist, dass die Schleife mit x.Property nicht durchlaufen
> wird. Weiß jemand warum?

Weil Du nicht über p.PriceProperties_set.objects.all iterieren musst, 
sondern über p.priceproperties_set.all

von djangoneuling (Gast)


Lesenswert?

Joachim S. schrieb:
> djangoneuling schrieb:
>>               {% for x in p.PriceProperties_set.objects.all %}
>> Das Problem ist, dass die Schleife mit x.Property nicht durchlaufen
>> wird. Weiß jemand warum?
>
> Weil Du nicht über p.PriceProperties_set.objects.all iterieren musst,
> sondern über p.priceproperties_set.all

Vielen Dank! Funktioniert!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.