2016-05-19 4 views
0

ビューでは、現在のユーザーに割り当てられたチケットを持つものが最初に来るようにプロジェクトを注文する必要があります。私はこのことについてどうやって行くのかについて少し混乱しています。 DjangoのORMで可能ですか?どんな助けにも感謝!ありがとう!関連するモデルでクエリーセットでクエリーセットを注文する方法

Models.py

class Project(TimeStampedModel): 
    title = models.CharField(max_length=200) 
    created_by = models.ForeignKey(settings.AUTH_USER_MODEL, null=True) 

class Ticket(TimeStampedModel): 
    title = models.CharField(max_length=200) 
    description = models.TextField(blank=True) 
    project = models.ForeignKey(Project, related_name="tickets") 
    created_by = models.ForeignKey(
    settings.AUTH_USER_MODEL, null=True, related_name="created_tickets") 
    assignees = RelatedSetField(
    settings.AUTH_USER_MODEL, related_name="tickets") 
+0

私の知る限りRelatedSetFieldは、標準モデルAPIの一部ではありません。それはどこから来ていますか? – e4c5

答えて

0

あなたは、任意のは、現在のユーザーに割り当てられているかどうかを確認し、それらの最初を表示し、クエリセットからそれらをポップできます。残りのクエリーセットを表示します。

擬似コード:

tickets = Tickets.objects.all() 
users_tickets = list() 
for ticket in tickets: 
    if current_user in ticket.assignees: 
     users_tickets.append(ticket) 
     tickets.pop(ticket) 
tickets = users_tickets + tickets 
+0

あなたの返信ありがとう!ええ、私はそれについて考えましたが、それを扱うことができるDjangoのORMに何かが組み込まれている必要があるように感じます。私はAnnotateを見ています。 –

+0

現在のユーザが割り当てられていないクエリーセットからプロジェクトを除外することができます。次に、残りのプロジェクトを含むクエリを追加します。 – marcusshep

関連する問題