簡體   English   中英

如何在沒有直通表的情況下對這些多對多值進行排序?

[英]How Can I Sort These Many To Many Values Without a Through Table?

我正在嘗試比較兩個 manytomany 字段中的值......這幾乎可行......

author_confirm = Author.objects.filter(id=self.object.update_reader_id).values_list('author_confirm').order_by('pk')
author = Author.objects.filter(id=self.object.update_reader_id).values_list('author').order_by('pk')
authors_are_equal = list(author) == list(author_confirm)
authors_are_not_equal = list(author) != list(author_confirm)

之所以有效,是因為它為我提供了值……但似乎沒有與 order_by 合作……我目前有兩個具有相同值的字段……但是它們的 PK 被調換了,所以它告訴我這些字段不是相同...這在技術上是正確的...但我發現問題是 PK 未按順序列出...有沒有辦法在沒有直通表的情況下執行此操作?

我正在使用 UUID 作為主鍵……我不確定這是否相關……但是 n.netheless 我似乎無法以有序的方式獲取值。

提前感謝您的任何想法。

您應該按author__pkauthor_confirmed__pk訂購,否則您只能按作者 object 本身訂購,我們已經知道:那是self.object.update_reader_id ,因此出現問題:

author_confirm = (
    Author.objects.filter(id=self.object.update_reader_id)
    .values_list('author_confirm')
    .order_by('author_confirm__pk')
)
author = (
    Author.objects.filter(id=self.object.update_reader_id)
    .values_list('author')
    .order_by('author__pk')
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM