メソッドComplaint
付きのモデルがありますget_latest_response
class Complaint(models.Model):
message = models.TextField(blank=True)
email = models.CharField(max_length=255)
def get_latest_response(self):
return ResponseLetter.objects.filter(complaint=self)[:1][0]
メソッドget_latest_response
は、この苦情に最新の応答を返します
とResponseLetter
モデル
class ResponseLetter(models.Model):
date_response = models.DateField(db_index=True)
response_content = models.TextField()
response_from = models.CharField(max_length=255)
complaint = models.ForeignKey(Complaint)
class Meta:
ordering = ["-date_response"]
その後、view
私は苦情を受け取ります(queryset
)
complaints = Complaint.objects.all()
そして私はこれらを注文する必要complaints
が ありますget_latest_response().date_response
しかし!queryset
私はこれをlist
好きに変換することはできません
complaints = list(complaints)
complaints.sort(key=lambda x: x.get_latest_response().date_response)
その後、私はこれqueryset
をレンダリングするのでobject_list
:
return object_list(request, template_name = 'complaint/complaints.html',
queryset = complaints, paginate_by = COMPLAINTS_PAGE_SIZE,
extra_context=extra_context
)
また方法:
sorted(complaints, key=lambda a: a.get_latest_response().date_response)
あまりにも動作しません
何かアドバイスをいただけますか?