Bạn nên sử dụng khung contentypes trong Django.
Có một ví dụ cho mối quan hệ chung chung ở đây:https://docs.djangoproject.com/en/1.8/ref/contrib/contenttypes/#generic-relationsĐối với yêu cầu của bạn, nó có thể trông giống như sau:
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')
Sau đó, bạn có thể làm như sau:
status1 = Status(request=Request1("foo"))
status1.save()
status2 = Status(request=Request2("bar"))
status2.save()
status1.request // <Request1 "foo">
status2.request // <Request2 "bar">