有一个表可以有不同类型的记录(Type1,Type2或Type3)。
models.py
from django.db import models
from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation
from django.contrib.contenttypes.models import ContentType
class General(models.Model):
field1 = models.CharField(max_length=512, blank=True, null=True)
field2 = models.CharField(max_length=512, blank=True, null=True)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')
class Meta:
db_table = 'General'
class Type1(models.Model):
name = GenericRelation(Product)
address = models.CharField(max_length=512, blank=True, null=True)
number = models.CharField(max_length=256, blank=True, null=True)
class Meta:
db_table = 'Type1'
如何建立连接并选择我想要在类型中键入的内容,例如Type2?
答案 0 :(得分:0)
除了以下行外,这看起来是正确的:
name = GenericRelation(Product)
应该是:
name = GenericRelation(General)
以形成正确的反向通用关系。