我尝试从现有MySQL表中获取数据,并使用this solution中的代码将其放入模型中:
addEventListener
然后我按如下方式调用该类:
, CASE WHEN datediff(day, a.Start_Date, a.End_Date) + 1 - DAY(a.END_Date) < DAY(a.END_DATE) THEN MONTH(a.End_Date)
ELSE MONTH(a.Start_Date) END AS Main_Month
, CASE WHEN YEAR(a.END_Date) = YEAR(a.Start_Date) THEN YEAR(a.Start_Date)
WHEN datediff(day, a.Start_Date, a.End_Date) + 1 - DAY(a.END_Date) < DAY(a.END_DATE) THEN YEAR(a.End_Date)
ELSE YEAR(a.Start_Date) END AS Main_Year
并将其传递给DataPool(使用Django&#39的Chartit创建图表):
def getModel(table_name):
class MyClassMetaclass(models.base.ModelBase):
def __new__(cls, name, bases, attrs):
name += table_name
return models.base.ModelBase.__new__(cls, name, bases, attrs)
class MyClass(models.Model):
__metaclass__ = MyClassMetaclass
time_stamp = models.DateTimeField(db_column='Time_stamp', blank=True, null=True) # Field name made lowercase.
price = models.DecimalField(db_column='Price', max_digits=8, decimal_places=3, blank=True,
null=True) # Field name made lowercase.
class Meta:
db_table = table_name
managed = False
return MyClass
此时它会抛出错误(1146,&#34;表&#39; meowdb.test_table&#39;不存在&#34;)。请注意,meowdb是数据库名称。它应该在此之前吗?
我也没有在任何地方主动将数据库传递到模型中。根据{{3}},似乎一旦模型被创建,Django会根据名称自动链接它吗?
最后,我该如何解决这个错误?该表肯定存在,并且填充了许多行。
答案 0 :(得分:0)
Okay, turns out I was being a moron. I used Django to auto-generate the models and then picked one at random to try using the flexible model code with. I just so happened to pick one with a space in it's table name. The class model name showed up without spaces of course and I didn't realise it. So the table genuinely wasn't there!