sql >> Databasteknik >  >> RDS >> PostgreSQL

Django modellerar en främmande nyckel till många tabeller

Du bör använda contentypes-ramverket i Django.

Det finns ett exempel på en generisk relation här:https://docs.djangoproject.com/en/1.8/ref/contrib/contenttypes/#generic-relationsFör ditt krav kan det se ut ungefär så här:

from django.db import models
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType

class Status(models.Model):
    request_type = models.ForeignKey(ContentType)
    request_id = models.PositiveIntegerField()
    request = GenericForeignKey('request_type', 'request_id')

Du kan sedan göra något i stil med följande:

status1 = Status(request=Request1("foo"))
status1.save()
status2 = Status(request=Request2("bar"))
status2.save()

status1.request // <Request1 "foo">
status2.request // <Request2 "bar">



  1. MySQL - FEL 1045 - Åtkomst nekad

  2. Hur vet jag om en databas är av hög kvalitet?

  3. Lägg till en sammanfattningsrad med totaler

  4. Långsam LEFT JOIN på CTE med tidsintervall