在此过程中,我需要更改模型的表名:
在我看来:
def list_tables(request, *args, **kwargs):
for suffix in range(0, 100):
my_model._meta.db_table = "table_name_{}".format(suffix)
print(my_model.objects.all().query)
结果是:
SELECT "table_name_0"."field_1", "table_name_0"."field_2" from "table_name_0"
SELECT "table_name_0"."field_1", "table_name_0"."field_2" from "table_name_1"
因此,当我在处理过程中更改_meta.db_table时,它会在第一个查询中更改select和from语句中的表名,但是在第二个查询中,它会从statement更改,但select中的表名仍与上一个table_name相同。
所以我在第二个查询中遇到了这个错误:
django.db.utils.ProgrammingError: missing FROM-clause entry for table "...
有人给我要价吗?