如何在Django中对模型输出进行排序?

2024-04-26 20:31:34 发布

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

我对django的开发还很新,希望有人能帮我。 我在一个视图和一个模板中有两个主要模型。 我的每个“主”模型都有自己的“子”模型(带有外键)。 我的输出很好,到目前为止还有效。在

我的问题是,我想把我的第二个主模型的子模型按名称排序。这有可能吗,或者我需要什么来改变?在

在我的例子中,我想排序'居住者姓氏'按名称。在

我有一张现在的照片:occupant.last_name

我的模型.py

class Management[...]
class Employee[...]

class Houses(models.Model):
    name = models.CharField(max_length=50)

    def __str__(self):
        return self.name

class Occupant(models.Model):
    house = models.ForeignKey(Houses, on_delete=models.CASCADE)
    last_name = models.CharField(max_length=50)
    first_name = models.CharField(max_length=50)
    room = models.IntegerField(default=0)

    def __str__(self):
        return self.first_name

我的视图.py

^{pr2}$

我的模板.html

{% for houses in Houses %}
<h3>{{ houses.name }}</h3>
<table><tbody>
    {% for occupant in houses.occupant_set.all %}
    <tr>
        <td>{{ occupant.last_name }}, {{ occupant.first_name }}</td>
        <td>{{ occupant.room }}</td>
    </tr>
[...]

非常感谢你的帮助,也很抱歉我的英语不好。:)

谨致问候

博尔斯蒂德


Tags: name模型self视图modelslengthmaxclass
1条回答
网友
1楼 · 发布于 2024-04-26 20:31:34

您可以按顺序在queryset中排序

order通过在Meta类下添加以下内容,在model中按姓氏创建默认顺序

class Occupant(models.Model):
    house = models.ForeignKey(Houses, on_delete=models.CASCADE)
    last_name = models.CharField(max_length=50)
    first_name = models.CharField(max_length=50)
    room = models.IntegerField(default=0)

    def __str__(self):
       return self.first_name
    class Meta:
       ordering = ('last_name',)

相关问题 更多 >