我正在使用Django查询中的
以下是我的代码(已大幅简化):
raw()
和annotate()
,需要一些测试方法。以下是我的代码(已大幅简化):
query = """SELECT
table1.id, table1.column1, table1.column2,
table2.other_column1, table2.other_column2
FROM myapp_mymodel as table1
JOIN otherapp_othermodel as table2 ON table1.othermodel_id = table2.id"""
return MyModel.objects.annotate(
other_column1=models.Value('other_column1', models.IntegerField()),
other_column2=models.Value('other_column2', models.DateField())
).raw(query)
填充数据库样本数据相对简单,但如何检查此代码返回的数据是最佳方式?
处理标准查询集时有很多选项,但在处理RawQuerySets时似乎不再适用。
RawQuerySet
没有.count()
方法(它不是一个QuerySet
),因此当你的查询与数据库进行交互时,你就要自己摸索了。同时也没有len()
方法。我假设我应该先将其转换为一个列表才能得到数量计数? - NickCatallist()
,然后对列表执行长度操作等。 - James Bennett