جانغو مجموعة طلبات البحث: كيفية ترتيب بواسطة حقل (الوراء) ذات الصلة؟

StackOverflow https://stackoverflow.com/questions/1643799

سؤال

في هذه الحالة لدي نموذجين، التعليق والتقييم. يتم تعريف العلاقة في نموذج التقييم، كما يلي:

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() ]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top