我试图从另一个模型的对象创建一个元组,并在另一个模型中使用它。它工作得很好,但是当我想启动我的应用程序并进行迁移时,它会给我错误,你正在尝试使用的模型尚未创建,显然!因此,我需要一个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'))
然后运行makemigrations
和migrate
然后再试一次?如果您试图执行使用未迁移模型的代码,它肯定不会工作。
——OR——
将该行移动到方法中,这样在执行makemigrations
def my_method():
INTERESTS = (Field.objects.values_list('slug', 'title'))
你想做的是错误的。在运行代码时尝试创建表是错误的。
相反,请确保您的表已设置,但为空。
您可以检查表是否为空。
检查表是否为空。使用这个
Objs = Mymodel.objects.all()
If objs is None:
# your code goes here