如何检查是否创建了模型表



我试图从另一个模型的对象创建一个元组,并在另一个模型中使用它。它工作得很好,但是当我想启动我的应用程序并进行迁移时,它会给我错误,你正在尝试使用的模型尚未创建,显然!因此,我需要一个if语句来检查模型表是否没有创建,不要做任何事情。这是我的模型:

class Field(models.Model):
id = models.AutoField(primary_key=True)
slug = models.CharField(max_length=16, default='default')
title = CharField(max_length=32)

和我的元组:

INTERESTS = (Field.objects.values_list('slug', 'title'))

,这是我得到的错误:

django.db.utils.OperationalError: no such table: reg_field

如何绕过这个错误?我需要这样的东西:如果字段存在,则:INTERESTS =以上,否则INTERESTS = ()

你试过注释这一行吗?

# INTERESTS = (Field.objects.values_list('slug', 'title')) 

然后运行makemigrationsmigrate然后再试一次?如果您试图执行使用未迁移模型的代码,它肯定不会工作。

——OR——

将该行移动到方法中,这样在执行makemigrations

时不会对其求值
def my_method():
INTERESTS = (Field.objects.values_list('slug', 'title'))

你想做的是错误的。在运行代码时尝试创建表是错误的。

相反,请确保您的表已设置,但为空。

您可以检查表是否为空。

检查表是否为空。使用这个

Objs = Mymodel.objects.all()
If objs is None:
# your code goes here

最新更新