我继承了一个经过重新设计的数据库,其中包括添加外键和唯一约束。因此,前面的测试对这些模型无效,我正在重写单元测试。你知道吗
我的models.py
文件中有两个类:
class Parentorgs(models.Model):
parentorg_id = models.IntegerField(primary_key=True)
parentorg = models.CharField(max_length=100L, db_column='ParentOrg', unique = True)
eff_date = models.DateField()
exp_date = models.DateField(null=True, blank=True)
class Meta:
db_table = 'txn_parentorgs'
class Contracts(models.Model):
parentorg_id = models.ForeignKey(Parentorgs)
contractnum = models.CharField(max_length=10L, db_column='ContractNum', primary_key = True)
eff_date = models.DateField()
exp_date = models.DateField(null=True, blank=True)
contractname = models.CharField(max_length=100L, db_column='ContractName') # Field name made lowercase.
class Meta:
db_table = 'txn_contracts'
如何在setup方法中创建用于单元测试的对象?我试过了
self.parentOrg = Parentorgs.objects.create(parentorg_id = 300,
parentorg = "TestParentOrgOne", eff_date = timezone.now(), exp_date = None)
self.contracts = Contracts.objects.create(parentorg_id = self.parentOrg,
contractnum = "1234", eff_date = timezone.now(), exp_date = None,
contractname = "testContractName")
这在创建contracts
对象时给了我一个错误,因为我得到了一个unknown column 'parentorg_id_id' in field list
错误。你知道吗
如何在这里创建具有适当关系的parentOrg
和contracts
对象?你知道吗
ForeignKey
是一个关系字段,它将自动映射id,因此您的模型应该如下所示:这种关系是这样建立的:
这将把列
parentorg_id
设置为self.parentOrg
的id
。你知道吗关于代码的一些其他的,也许不相关的评论:
Contact
而不是Contracts
,因为实例是一个契约。你知道吗parentorg_id
中的Parentorgs
字段是不必要的。你知道吗相关问题 更多 >
编程相关推荐