【发布时间】:2013-06-20 21:35:07
【问题描述】:
我的 Django 项目中的两个模型是
class ContractPlans(models.Model):
cp_id = models.CharField(primary_key = True, db_column = "ContractPlanId", max_length = 100L)
parentorg = models.ForeignKey("Parentorgs")
contractnum = models.ForeignKey("Contracts", db_column = "ContractNum")
plan_id = models.CharField(max_length = 100L, db_column = "PlanID")
eff_date = models.DateField()
exp_date = models.DateField(null=True, blank=True)
planname = models.CharField(max_length=100L, db_column='PlanName')
class ContractPlanTags(models.Model):
contract_plan_id = models.IntegerField(primary_key = True, db_column = "table_id")
parentorg = models.ForeignKey("Parentorgs", db_column = "parentorg_id")
contractnum = models.ForeignKey("Contracts", db_column = "ContractNum")
planid = models.ForeignKey("ContractPlans", db_column = "PlanId")
tag_id = models.IntegerField()
tag_value_id = models.ForeignKey("Tags", db_column = "tag_value_id")
eff_date = models.DateField()
exp_date = models.DateField(null=True, blank=True)
我正在对ContractPlanTags 执行prefetch_related() 查询
lst = ContractPlanTags.objects.prefetch_related().filter(parentorg = request.REQUEST["parentorg"])
这是为了在一次数据库命中中获取与该模型类关联的所有外键对象。
我的问题是 Django 不断抛出错误
DoesNotExist: ContractPlans matching query does not exist.
Lookup parameters were {'cp_id__exact': u'805'}
我想要做的是在序列化器循环中提取与ContractPlans.plan_id 和ContractPlans.planname 关联的值,以作为JSON 对象传递给视图。
我该如何解决这个错误?
【问题讨论】:
-
您在数据库中是否有 ID 为 805 的
ContractPlans的记录? -
请注意,
prefetch_related实际上并没有避免多个数据库查询。select_related确实如此,而且在这里可能更合适。但是,如果您的数据库的外键损坏,您仍然会遇到异常。
标签: python django django-models