Django不需要ContentType

yre*_*uta 6 python django content-type

我有这个型号:

class Auth(models.Model):
    TYPES = (
         ('agent', 'Agent'),
         ('broker', 'Broker'),
     )
    user = models.ForeignKey(User, unique=True)
    type = models.CharField(max_length=20, choices=TYPES)
    applied = models.BooleanField()
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField(db_index=True)
    content_object=generic.GenericForeignKey('content_type', 'object_id')
Run Code Online (Sandbox Code Playgroud)

每当我做这样的事情:

User.objects.create_user(username="myuser", password="myuser", email="myemail.com")
u = User.objects.get(username="myuser")
profile = Auth(user=u)
profile.save()
Run Code Online (Sandbox Code Playgroud)

当然我会收到错误:

IntegrityError: (1048, "Column 'content_type_id' cannot be null")
Run Code Online (Sandbox Code Playgroud)

出于我的目的,我无法避免contenttypes,因为Auth是一个Broker和Agent类继承的类,它允许我做多个自定义配置文件.

我想知道是否有一种方式不需要内容类型.

提前致谢!

var*_*tec 5

content_type = models.ForeignKey(ContentType, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

null=True在数据模型中blank=True使其成为可选,在使用管理表单时使其成为可选(否则您将收到验证错误)。