Django在模块内对列表进行排序

2024-10-01 00:28:30 发布

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

我想在一个表中保留一个地址列表。你知道吗

下面是我的排序代码:(它不起作用,老实说,我不知道该怎么做,因为我对Django/Python不熟悉)

def detail(request, table_name):
    table = get_object_or_404(Table, name=table_name)
    addressSet = table.address_set.all();
    addressSet.sort(key=operator.attrgetter('address'))

这是你的名字型号.py对于这2项:

class Table(models.Model):
    name = models.CharField(max_length = 100)
    description = models.CharField(max_length = 100)
    size = models.IntegerField()
    def __str__(self):
        return self.name + " - " + self.description
class Address(models.Model):
    address = models.CharField(max_length = 20)
    description = models.CharField(max_length = 100)
    table = models.ForeignKey(Table)
    def __str__(self):
        return str(self.address) 

Tags: nameselfmodeladdressmodelsdeftabledescription
1条回答
网友
1楼 · 发布于 2024-10-01 00:28:30

通过使用 meta class,可以为模型设置排序和许多其他选项。以你为例:

class Address(models.Model):
    address = models.CharField(max_length=20)
    ...

    class Meta:
        ordering = ['address']

这将在从数据库中查询完查询集中的地址模型后,对它们进行排序。这不会影响数据的存储方式。你知道吗

相关问题 更多 >