0
私はジャンゴの開発でかなり新しいです。誰かが私を助けてくれることを願っています。 私は1つのビューと1つのテンプレートの2つのメインモデルを持っています。 私の「メイン」モデルのそれぞれには、独自の「サブ」モデル(外部キー付き)があります。 私の出力は問題なく、これまでのところ動作します。モデル出力をDjangoでどのように並べ替えることができますか?
私の問題は、2番目のメインモデルのサブモデルを名前で並べ替えることです。これは可能ですか、これを変更するには何が必要ですか?
私の例では、'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
マイテンプレート:
は、私はそれが今どのように見える絵を持っています。 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で
あなたはメタクラスの下にこれを追加することにより、ORDER_BY()ためLAST_NAMEによってモデルのデフォルトの順序を作ることにより、クエリセットに並べ替えることができます
ありがとうございました。 :)私はまた別の解決策を見つけました({{%}}})。しかし、私はあなたのことを好きになると思う。 :D – borsTiHD
あなたのソリューションは大丈夫ですが、最高のパフォーマンスではありません:) –
あなたのソリューションを使用するもう一つの理由。どうもありがとうございます。 :Dそして申し訳ありませんが、私はあなたの答えをupvoteすることはできません。 :/ – borsTiHD