いつもお世話になっております。
早速本題に入らせていただきます。
現在DjangoとPythonを使用してWebアプリケーションを制作しているのですが、外部キー を設定した 親テーブルのカラムをOrder_by 出来ずに四苦八苦しております。
以下が現在のコードとなります。
test_master.py (Model)
Python
1class TestMaster(models.Model): 2 class Meta: 3 db_table = "test_master" 4 5 id = models.AutoDield(primary_key=True) 6 title = models.CharField(max_length=20, null=False) 7 user_id = models.ForeignKey(UserMaster, db_column='user_id', on_delete=models.CASCADE, related_name='user')
user_master.py (Model)
Python
1class UserMaster(models.Model): 2 class Meta: 3 db_table = "user_master" 4 5 user_id = models.CharField(db_column='user_id', max_length=30, primary_key=True) 6 last_name = models.CharField(db_column='last_name', max_length=30) 7 first_name = models.CharField(db_column='first_name', max_length=30)
views.py
Python
1test_id_list=[1,2,3,4,5] 2queryset = TestMaster.objects.filter(""" 絞り込み条件 """) 3queryset2 = TestMaster.objects.filter(""" 絞り込み条件 """) 4return queryset .union(queryset2).order_by('user_id__last_name', 'user_id__first_name')
試したこと1
Python
1.order_by('user__last_name', 'user__first_name')
実行結果1
log
1Cannot resolve keyword 'user' into field.
試したこと2
Python
1.order_by('user_master__last_name', 'user_master__first_name')
実行結果2
log
1Cannot resolve keyword 'user_master' into field.
試したこと3
Python
1.order_by('user_id.last_name', 'user_id.first_name')
実行結果3
log
1ORDER BY term does not match any column in the result set.
試したこと4
Python
1.order_by('user_id__last_name', 'user_id__first_name')
実行結果4
log
1ORDER BY term does not match any column in the result set.
Google先生に聞いて色々変えてorder_byしてみましたが中々うまくいかず・・・。
お時間ある方で、**Djangoの外部キーで参照した親テーブルのカラムをOrder_by **する方法ご存知の方いらっしゃいましたらご助力頂けますと幸いです。
調べた後の追記
単一のテーブルからレコードを選択する場合、それらのレコードの任意のものをソートに使用できます。
ただし、複数のクエリをUNIONで結合する場合、並べ替えは結果全体に対して行われるため、結果の一部の列を順序付けに使用する必要があります。この場合、これは計算をクエリ自体に移動する必要があることを意味します。
Python
1queryset .union(queryset2).order_by('user_id__last_name', 'user_id__first_name')
UNION後にOrder_byしてるのがよろしくない・・・?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。