Django 阻止创建模型对象
我有以下型号:Django 阻止创建模型对象,django,django-models,Django,Django Models,我有以下型号: from django.db import models from django.contrib.auth.models import User # Create your models here. class CommonUser(models.Model): user = models.OneToOneField(User) field = models.CharField(max_length=20) class SpecificUserA(models.Mod
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class CommonUser(models.Model):
user = models.OneToOneField(User)
field = models.CharField(max_length=20)
class SpecificUserA(models.Model):
user = models.OneToOneField(CommonUser)
field_a = models.CharField(max_length=20)
class SpecificUserB(models.Model):
user = models.OneToOneField(CommonUser)
field_b = models.CharField(max_length=20)
这使我能够在SpecificUserA
和SpecificUserB
之间共享信息。这并不妨碍我为一个用户
对象创建SpecificUserA
和SpecificUserB
对象:
u = User.objects.create_user(username='user1')
u.save()
u.commonuser = CommonUser(field="user1 field data")
u.commonuser.save()
u.commonuser.specificusera = SpecificUserA(field_a="user1 field_a data")
u.commonuser.specificusera.save()
# how can I prevent this?
u.commonuser.specificuserb = SpecificUserB(field_b="user1 field_b data")
u.commonuser.specificuserb.save()
我知道我可以在创建
特定的
对象之前设置条件来检查具有特定用户名的用户
对象是否存在,但是是否有一个检查可以捕获上述场景?您不在此处使用模型继承的任何原因?可能不会有太大的区别,但可能会提供一个响应。我遵循的示例来自。据我所知,结果是为派生模型创建一对一字段。