temp中多对一关系的Django模型

2024-07-04 09:08:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个一对多关系的对象:

from django.db import models

class DownloadItem(models.Model):
    name = models.CharField(max_length=200)
    description = models.CharField(max_length=200)
    downloadItem = models.ImageField(upload_to='./images/downloadItems', blank=True)

    def __unicode__(self):
        return self.name

class DownloadItemSample(models.Model):
    photo = models.ImageField(upload_to='./images/downloadItemsSample', blank=True)
    downloadItem = models.ForeignKey(DownloadItem, blank=True, null=True)
    order = models.IntegerField(default=0)

在我看来,我要做的是:

^{pr2}$

在我的模板中,我希望得到以下内容:

{{ downloads_list.downloadItemSample_set.all().order_by('order')[0] }}

我也希望遍历数组,但是对于这个示例,我使用索引0。在

我想写一个自定义的模板标记,但我认为这不是最好的方法。我想我可以为DownloadItem模型编写一个方法,它接受一个索引并返回正确的DownloadItemSample对象,但目前我也无法创建这个方法。在

解决这个问题的最好办法是什么?在


Tags: 对象方法nametruemodelmodelsorderlength
1条回答
网友
1楼 · 发布于 2024-07-04 09:08:03

您永远无法实现downloads_list.downloadItemSample_set,因为downloads_list是一个查询集。在

实现这一目标的一种方法是:

{% for download in downloads_list %}
    {{ download.get_sample_by_order }}
{% endfor %}

这里get_sample_by_order是类DownloadItem中的一个助手方法,它返回我们需要的值。在

^{pr2}$

相关问题 更多 >

    热门问题