我有一组数据库表,用于存储每天每分钟的客户订单数。一年中的每个月都是不同的表,以避免表过大。为了在我的 Django 网页中检索这些数据,我动态创建了一个模型类,其中 db_table 根据从 html 表单输入接收到的日期填充。问题是当我用新的日期值重新提交表单时,该类不会更新到应该是新模型,它仍然保持旧值。
我的 models.py 看起来像这样:
class baseModel(models.Model):
id = models.CharField(max_length=40)
date = models.IntegerField()
minute = models.IntegerField()
totalorders = models.IntegerField()
class Meta:
abstract = True
managed = False
def getModel(type, yyyymm):
if type == 'duration':
class DurationClass(baseModel):
medianduration = models.IntegerField()
avgduration = models.IntegerField()
class Meta:
db_table='orderTable' + yyyymm
#debug statement
print db_table
return DurationClass
yyyymm 只是一个字符串,例如 2012 年 4 月的“201204”。因此,如果我在输入框中输入 2012 年 4 月,它可以正常工作,但如果我更改为 2012 年 3 月,它仍然会查询 4 月的数据。我可以从调试语句中看到 db_table 正在正确更新,但由于某种原因它无法正常工作。在分配新的动态模型或其他东西之前,我是否需要解除分配旧的动态模型?在 view.py 中,我只是这样做(不是循环):
myModel = getModel('duration', startyyyymm)
QS = myModel.objects.using( ...etc
非常感谢您的任何想法。