Две модели в моем проекте Django являютсяИзменение параметров просмотра для объекта запроса 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)
Я выполнение prefetch_related()
запроса на ContractPlanTags
по
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.
Как устранить эту ошибку?
У вас есть запись в базе данных для 'ContractPlans' с идентификатором 805? – karthikr
Обратите внимание, что 'prefetch_related' фактически не избегает нескольких запросов к базе данных. 'select_related' делает и может быть здесь более уместным. Тем не менее, вы все равно получите исключения, если ваша база данных нарушила внешние ключи. –