kurz um was es geht. Ich habe mehrere Produkte. Jedes Produkt wird von mehreren Anbietern zu unterschiedlichen Preisen angeboten, daher gibt es unterschiedliche Angebote.
Meine models.py
Code: Alles auswählen
from django.db import models
class Produkt(models.Model):
name = models.CharField(max_length=30)
beschreibung = models.TextField()
class Meta:
verbose_name = "Produkt"
verbose_name_plural = "Produkte"
def __unicode__(self):
return self.name
class Anbieter(models.Model):
name = models.CharField(max_length=30)
class Meta:
verbose_name = "Anbieter"
verbose_name_plural = "Anbieter"
def __unicode__(self):
return self.name
class Marke(models.Model):
name = models.CharField(max_length=30)
class Meta:
verbose_name = "Marke"
verbose_name_plural = "Marken"
def __unicode__(self):
return self.name
class Angebot(models.Model):
produkt = models.ForeignKey(Produkt)
anbieter = models.ForeignKey(Anbieter)
marke = models.ForeignKey(Marke)
preis = models.DecimalField(max_digits=5, decimal_places=2)
class Meta:
verbose_name = "Angebot"
verbose_name_plural = "Angebote"
def __unicode__(self):
return unicode(self.produkt)
Mein derzeitiger Output sieht allerdings so aus:Produkt Anbieter1 Anbieter2 Anbieter3
Käse 2 1 3
Ich habe ja irgendwie die Befürchtung es liegt an meiner Templatelogik, daher poste ich diese auch mal:Produkt Anbieter1 Anbieter2 Anbieter3
Käse 2 1 3
Käse 2 1 3
Käse 2 1 3
Code: Alles auswählen
{% extends "base.html" %}
{% block titel %}{{ block.super }} - Index{% endblock %}
{% block inhalt %}
{% if object_list %}
<table style="text-align: center;">
<tr>
<th>Produkt</th>
{% for object in object_list %}
<th>{{ object.anbieter }}</th>
{% endfor %}
</tr>
{% for object in object_list %}
<tr>
<td>{{ object.produkt }}</td>
{% for object in object_list %}
<td>{{ object.preis }} €</td>
{% endfor %}
</tr>
{% endfor %}
</table>
{% endif %}
{% endblock %}
Code: Alles auswählen
info_dict = {
'queryset': Angebot.objects.all(),
}
urlpatterns = patterns('',
url(r'^index/$', 'django.views.generic.list_detail.object_list',
dict(info_dict, template_name='preisvergleich/index.html')),
)
Grüße