我对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>
[...]
非常感谢你的帮助,抱歉我的英语不好。 :)
最诚挚的问候
borsTiHD
答案 0 :(得分:2)
您可以按order_by()
对查询集进行排序通过在类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',)