在视图中更改模型的表名

时间:2018-10-25 15:58:56

标签: python django django-forms django-views

在此过程中,我需要更改模型的表名:

在我看来:

 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 "...

有人给我要价吗?

0 个答案:

没有答案