Как проверить, создана ли таблица модели или нет

Я пытаюсь создать кортеж из объектов другой модели и использовать его в другой модели. Это работает просто отлично, но когда я хочу запустить свое приложение и сделать makemigrations, оно выдает мне ошибку, что модель, которую вы пытаетесь использовать, еще не создана, очевидно! Поэтому мне нужен оператор 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

Как я могу обойти эту ошибку? Мне нужно что-то вроде этого: if Field exists then: ИНТЕРЕСЫ = вышеуказанное, иначе ИНТЕРЕСЫ = ()

Пробовали ли вы закомментировать эту строку:

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

Затем выполнить makemigrations и migrate, а затем попробовать снова? Если вы пытаетесь выполнить код, который использует немигрированную модель, это, конечно, не сработает.

--- ИЛИ --

Переместите эту строку внутрь метода, чтобы она не оценивалась при выполнении makemigrations

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

То, что вы пытаетесь сделать, неправильно. Неправильно пытаться создавать таблицы во время выполнения вашего кода.

Вместо этого убедитесь, что ваши таблицы установлены, но пусты.

Вместо этого вы можете проверить, пуста ли таблица.

Чтобы проверить, пуста ли таблица... Используйте это

Objs = Mymodel.objects.all()
If objs is None:
    # your code goes here
Вернуться на верх