katsumasa0514
@katsumasa0514 (ASAP k)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

djangoでobjectsとorder_byを使いDBをソート

解決したいこと

WEBアプリを制作しています。
今回登録されているデータを取り出すためobjectsを使おうと考えました。
データを昇順で並べ替えようとorder_byを使おうとしたのですが、ForeignKeyで繋げた別テーブルのカラムをorder_byの引数に入れようとしたところつまずいてしまいました。

models.py
class Review(models.Model):
    owner = models.ForeignKey(User, on_delete=models.CASCADE, related_name='review_owner')
    commentTitle = models.CharField(max_length=100)
    comment = models.TextField()
    movie_id = models.IntegerField()
    star = models.DecimalField(default=0, max_digits=2, decimal_places=1)
    datetime = models.DateTimeField(default=timezone.now)

class Goodbad(models.Model):
    owner = models.ForeignKey(Review, on_delete=models.CASCADE, related_name='goodbad_owner')
    good = models.IntegerField(null=True)
    bad = models.IntegerField(null=True)
views.py
def search(request):
    reviewDataOrg = Review.objects.order_by()

    params = {
        'reviewDataOrg': reviewDataOrg,
    }

    return render(request, 'movieist/search.html', params)

good評価が多い順にレビューを表示させたいのですが、
models.pyのGoodbadの中にあるgoodを使いデータを並び替えて、連携先であるmodels.pyのReviewの並べ替えを連動させる方法はありますでしょうか?

至らない点も多々あるかと思いますがよろしくお願いします。

0

1Answer

解決しました。

結果として、いろいろ試したけれど上手くいきませんでした。
models.pyのReviewにgoodのcountデータを持たせるようにしました。

ご協力いただきありがとうございました。

0Like

Your answer might help someone💌