Django-将具有不同外键的Approval子类组合到一个类中
假设我的Django项目中有两个模型Django-将具有不同外键的Approval子类组合到一个类中,django,django-models,Django,Django Models,假设我的Django项目中有两个模型 class Project(models.Model): name = models.CharField(max_length=256) class Forecast(models.Model): name = models.CharField(max_length=256) project = models.ForeignKey(Project) 我想在一个独立的应用程序中构建一个批准模型,该模型允许我组合以下两个批准子类: c
class Project(models.Model):
name = models.CharField(max_length=256)
class Forecast(models.Model):
name = models.CharField(max_length=256)
project = models.ForeignKey(Project)
我想在一个独立的应用程序中构建一个批准模型,该模型允许我组合以下两个批准子类:
class ProjectApproval(models.Model):
approver = models.ForeignKey(User)
approved_object = models.ForeignKey(Project)
class ForecastApproval(models.Model):
approver = models.ForeignKey(User)
approved_object = models.ForeignKey(Forecast)
变成更一般的东西,比如:
class Approval(models.Model):
user = models.ForeignKey(User)
approved_object = [whatever I want ... a Project, a Forecast, a Checkbook, a Plan]
这可能吗
谢谢
Mike当然可以,Django有一般关系:) 看看django文档 实施的一个例子如下:
from django.contrib.contenttypes import generic
from django.contrib.contenttypes.models import ContentType
class Approval(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
当然可以,Django有通用关系:) 看看django文档 实施的一个例子如下:
from django.contrib.contenttypes import generic
from django.contrib.contenttypes.models import ContentType
class Approval(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
哇,我看了一整本教程书,从来没有接触过。谢谢你指出这一点……哇,我看了整整一本教程,从来没有接触过。谢谢你指出这一点。。