我有一个现有的工作站点,它利用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征求意见。