جانغو مجموعة طلبات البحث: كيفية ترتيب بواسطة حقل (الوراء) ذات الصلة؟
-
10-07-2019 - |
سؤال
في هذه الحالة لدي نموذجين، التعليق والتقييم. يتم تعريف العلاقة في نموذج التقييم، كما يلي:
class Comment(models.Model):
content = TextField()
...
class Score(models.Model):
comment = models.ForeignKey(Comment)
value = models.IntegerField()
وسؤالي هو: كيف يمكنني بناء مجموعة طلبات البحث التي تقوم بإرجاع جميع التعليقات وبأمر من قيمة مجموع النقاط
ويرجع الفضل في ذلك مسبقا!
ومارتن
المحلول
ويجب تغيير نموذج التقييم الخاص بك لاستخدام حقل OneToOne، وليس ForeignKey - وهي FK يعني هناك نتيجة أكثر من واحد في التعليق، والتي من شأنها أن تنجح أبدا
ولكن في اي من الاتجاهين، الاستعلام يمكن أن يتم مثل هذا:
Comment.objects.order_by('score__value')
نصائح أخرى
ما زلت جديدة لجانغو، ولكن تم العمل ث / لبضعة أشهر من الآن. وأعتقد أن هذا قصاصة يمكن أن تعمل (في ترتيب تصاعدي، تنازلي لاستخدام '-value'
):
comments = [ score.comment for score in Score.objects.order_by('value').all() ]
لا تنتمي إلى StackOverflow