Django 在模型中对列表进行排序
Django Sorting a List inside a model
我想保留在 table 内排序的地址列表。
这是我的排序代码:(它不起作用,老实说,我不知道该怎么做,我是 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'))
这是这 2 件商品的 models.py:
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)
您可以通过使用 meta class 为模型设置顺序和许多其他选项。所以对于你的例子:
class Address(models.Model):
address = models.CharField(max_length=20)
...
class Meta:
ordering = ['address']
这将在从数据库查询后对查询集中的地址模型进行排序。这不会影响数据的底层存储方式。
我想保留在 table 内排序的地址列表。
这是我的排序代码:(它不起作用,老实说,我不知道该怎么做,我是 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'))
这是这 2 件商品的 models.py:
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)
您可以通过使用 meta class 为模型设置顺序和许多其他选项。所以对于你的例子:
class Address(models.Model):
address = models.CharField(max_length=20)
...
class Meta:
ordering = ['address']
这将在从数据库查询后对查询集中的地址模型进行排序。这不会影响数据的底层存储方式。