[英]How can I sort my model output in Django?
我在使用django進行開發時還很新,希望有人能幫助我。 我在一個視圖和一個模板中有兩個主要模型。 我的每個“主”模型都有其自己的“子”模型(帶有外鍵)。 我的輸出很好,到目前為止可以正常工作。
我的問題是,我想按名稱對第二個主要模型的子模型進行排序。 這可能嗎,或者我需要改變什么?
在我的示例中,我想按名稱對“ occupant.last_name”進行排序。
我有一幅現在的樣子: occupant.last_name
我的models.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
我的views.py
class IndexView(ListView):
context_object_name = 'all_management_list'
template_name = 'blackboard/index.html'
queryset = Management.objects.order_by('order_number')
def get_context_data(self, **kwargs):
context = super(IndexView, self).get_context_data(**kwargs)
context['Houses'] = Houses.objects.all()
# And so on for more models
return context
我的template.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>
[...]
非常感謝您的幫助,對不起我的英語不好。 :)
最誠摯的問候
硬盤
您可以通過order_by()在queryset中排序
order通過在類Meta下添加此命令,以last_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
class Meta:
ordering = ('last_name',)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.