【发布时间】:2018-03-03 13:22:05
【问题描述】:
我有两个模型,如下所示。
class Account(models.Model):
ASSET='A'
LIABILITY='L'
INCOME='I'
EXPENSE='E'
ACCOUNT_TYPE=((ASSET,'Asset'),
(LIABILITY,'Liability'),
(INCOME,'Income'),
(EXPENSE,'Expense'))
name=models.CharField(unique=True,db_index=True,max_length=70)
type=models.CharField(choices=ACCOUNT_TYPE,max_length=1)
class Person(models.Model):
first_name=models.CharField(max_length=30,)
last_name=models.CharField(max_length=30,)
account=models.OneToOneField(Account,on_delete=models.CASCADE)
Person 模型具有以下 CreateView 和模型表单。
class CreatePerson(CreateView):
model=Person
form_class=CreatePersonForm
class CreatePersonForm(forms.ModelForm):
display_name=forms.CharField()
class Meta:
model= Person
fields = ['first_name','last_name','display_name']
当创建一个新的Person时,我需要
首先创建一个 Account 对象(name=display_name, type='A')并需要将其分配给 Person 对象。
如果已存在具有相同 display_name 的帐户,则再次呈现表单,但出现验证错误。
有人可以指出正确的方向吗?
谢谢。
【问题讨论】:
-
从读取 Django 信号或从处理注册表单的视图开始也很实用
-
pre_save 信号能否将已创建对象的引用返回给 Sender?
标签: django activity-oncreateview