私は、各チケットのステータスをログに記録する必要がある django のチケット/問題トラッカーに取り組んでいます。これは私のモデルの単純化です。
class Ticket(models.Model):
assigned_to = ForeignKey(User)
comment = models.TextField(_('comment'), blank=True)
created = models.DateTimeField(_("created at"), auto_now_add=True)
class TicketStatus(models.Model):
STATUS_CHOICES = (
(10, _('Open'),),
(20, _('Other'),),
(30, _('Closed'),),
)
ticket = models.ForeignKey(Ticket, verbose_name=_('ticket'))
user = models.ForeignKey(User, verbose_name=_('user'))
status = models.IntegerField(_('status'), choices=STATUS_CHOICES)
date = models.DateTimeField(_("created at"), auto_now_add=True)
現在、チケットのステータスを取得するには、日付で簡単に並べ替えて、このように最初の列を取得します。
ticket = Ticket.objects.get(pk=1)
ticket.ticketstatus_set.order_by('-date')[0].get_status_display()
しかし、管理者でステータスをフィルタリングできるようにしたいのですが、チケットクエリセットを介してステータスを取得する必要があるため、突然複雑になります。特定のステータスのすべてのチケットを含むクエリセットを取得するにはどうすればよいですか?