我有三个模型:Porumbei
,Concursuri
和Rezultate
。我有一些 Porumbei ,我创建了同意A 和 Rezultate B 。
Rezultate模型通过porumbelul与Porumbei相关联(manytoManyField,许多rezultate中可以有一个porumbel,而Rezultate可以具有更多porumbei)。
我希望页面将Rezultate的详细信息显示为表格,并且如何显示属于该Concursuri和相同Rezultate的每个Porumbei? Rezultate通过concursul(onetoonefield)与Concursuri相关联。
我的模特:
class Porumbei(models.Model):
id_porumbel = models.AutoField(primary_key=True)
data_adaugare = models.DateTimeField(default=timezone.now, null=True, blank=True)
crescator = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, null=True, blank=True,
related_name='porumbeii')
serie_inel = models.CharField(max_length=25, null=False, blank=False, unique=True,
help_text="Seria de pe inel. Ex: RO 123456")
anul = models.CharField(max_length=4, null=False, blank=False)
....
class Concursuri(models.Model):
crescator = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True, blank=True, related_name='concursurile')
sezon = models.CharField(max_length=4, default=timezone.now().year, null=True, blank=True)
cod_concurs = models.CharField(max_length=8, primary_key=True, unique=True)
tip_concurs = models.CharField(max_length=12, choices=TIPURI_CONCURS)
categorie_concurs = models.CharField(max_length=10, choices=CATEGORII)
data_lansare = models.DateField(null=False, blank=False)
....
class Rezultate(models.Model):
crescator = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True, blank=True)
concursul = models.OneToOneField(Concursuri, on_delete=models.CASCADE, related_name="concursul")
porumbelul = models.ManyToManyField(Porumbei)
sosire = models.DateTimeField(blank=False)
zi_concurs = models.PositiveIntegerField(blank=False, default=1)
timp_zbor = models.DateTimeField(blank=False)
viteza = models.CharField(max_length=15, blank=False)
penalizare = models.FloatField()
我的观点:
def viewrezultate(request):
# Variabile folosite in tabelul de afisare rezultate
rezultate = Rezultate.objects.filter(crescator=request.user)
concursuri = Concursuri.objects.filter(crescator=request.user)
porumbei = Porumbei.objects.filter(crescator=request.user)
context = {
'rezultate': rezultate,
'concursuri': concursuri,
'porumbei': porumbei,
}
template = loader.get_template("rezultate.html")
return HttpResponse(template.render(context, request))
在模板中,如果我渲染{{rezultate.porumbelul}}
,则会得到一个空列表(porumbei.Porumbei.None
)。相反,我想显示porumbei.serie_inel
(表中新行中的每个serie_inel)。
有人知道我该怎么做到吗?预先感谢!