找不到对象,但确实存在

时间:2017-11-06 18:13:28

标签: django django-models

我有一个现有的工作站点,它利用Adobe Lightroom的目录是一个sqlite3数据库。该模型是自动生成的。

在更新网站代码(到TemplateView和精简版)的同时,我认为我会冒险并使用其中一个类模型来获取有关面部(人)出现在照片中的次数的信息。

模特:

class Aglibrarykeywordpopularity(models.Model):
    id_local = models.IntegerField(primary_key=True, blank=True, null=False)
    occurrences = models.TextField()  # This field type is a guess.
    popularity = models.TextField()  # This field type is a guess.
    tag = models.TextField(unique=True)  # This field type is a guess.

    class Meta:
        managed = False
        db_table = 'AgLibraryKeywordPopularity'

'tag'值可以从另一个模型获得,它被称为'id_local':

face_id = list(Aglibrarykeyword.objects.values_list('id_local', flat=True))

当您查看数据库时,'face_id'的值都出现在前一个'tag'字段中。 但是,使用时:

for a in face_id:
        face_pop.append(Aglibrarykeywordpopularity.objects.get(tag=a).occurrences)

..它抱怨说没有比赛。我已将a替换为数字或数字的字符串,甚至将.0添加到表示中,它仍然抱怨没有匹配。我试过.filter...first()等等。

slides.models.DoesNotExist: Aglibrarykeywordpopularity matching query does not exist

我当前的解决方法是将对象的All()输出到列表并获取我想要的值 - 这有用,但我更感兴趣的是为什么它不能正常工作。

我注意到的是模型的tag定义为TextField,当我从All()获取值时,它们是浮点数。是否存在变量类型的3种方式不匹配的情况,1)模型2)数据3)查询 - 所以无论我在查询中放置浮点数或文本,它都永远不会匹配?即,我是否必须更改模型,迁移它,一切都应该很好? (因为我不是Django专家,"managed = False"是否意味着即使我这样做,它也不会影响db数据?)

TIA征求意见。

0 个答案:

没有答案