Jestem nowy w użyciu GenericForeignKey i nie mogłem go uruchomić w instrukcji zapytania. Tabele są mniej więcej tak:django: jak mogę wykonać zapytanie na podstawie pól 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)
skan tworzy jeden problem, problem generuje jakieś bilety, i zrobiłem Issue jako klucz obcy do tabeli biletową. Teraz mam obiekt skanowania i chcę zapytać o wszystkie bilety związane z tym skanowaniem. Próbowałem tego najpierw:
tickets = Tickets.objects.filter(issue__scan=scan_obj)
co nie działa. Następnie próbowałem tego:
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)
Nadal nie działa. Muszę wiedzieć, jak wykonać tego rodzaju zapytania w django? Dzięki.
Uratowałem mój dzień, przyjacielu, jestem po prostu bez włosów po tym, jak próbowałem to rozgryźć. Dzięki :) . –
@girasquid issue_id jest bardzo mylące, ponieważ może odnosić się do pola issu_id w pytaniu lub atrybutu id pola problemowego w pytaniu, czy możemy je rozróżnić? – rohanagarwal