django :как сделать запрос на основе полей GenericForeignKey?

Я новичок в использовании GenericForeignKey, и мне не удалось заставить его работать в операторе запроса. Таблицы примерно такие, как следующие:

class Ticket(models.Model):
    issue_ct = models.ForeignKey(ContentType, related_name='issue_content_type')
    issue_id = models.PositiveIntegerField(null=True, blank=True)
    issue = generic.GenericForeignKey('issue_ct', 'issue_id')

class Issue(models.Model):
    scan = models.ForeignKey(Scan)

Сканирование создает одну проблему, проблема генерирует несколько билетов, и я сделал задачу как внешний ключ для таблицы билетов. Теперь у меня есть объект сканирования, и я хочу запросить все билеты, связанные с этим сканированием. Я попробовал это первым:

tickets = Tickets.objects.filter(issue__scan=scan_obj)

что не работает. Затем я попробовал это:

issue = Issue.objects.get(scan=scan_obj)
content_type = ContentType.objects.get_for_model(Issue)
tickets = Tickets.objects.filter(content_type=content_type, issue=issue)

Все еще не работает. Мне нужно знать, как делать такие запросы в django? Спасибо.

45
задан Shang Wang 14 August 2012 в 20:42
поделиться