Почему я получаю "OperationalError: No Such Table" в Django

Я пытаюсь хранить значения в базе данных sqlite и извлекать их из базы данных для использования в моем проекте с помощью моделей django. В моем проекте django есть два приложения: 'main' и 'apply'. Я запустил migrate и makemigrations для обоих. Когда я сохраняю значения в полях модели для 'main', все работает нормально. Однако, когда я пытаюсь сохранить значения в полях модели для 'apply', я всегда получаю "utils.OperationalError: No Such Table apply_(model name)" Я установил другую базу данных для моих моделей "apply", а модели "main" используют базу данных по умолчанию.

Релевантные настройки.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    },

    'apply': {
        'NAME': 'apply_data',
        'ENGINE': 'django.db.backends.sqlite3'
    },
}

DATABASE_ROUTERS = ['django_webpage_project.routers.ApplyRouter']

projectname/routers.py

class ApplyRouter:
"""
A router to control all database operations on models in the
auth and contenttypes applications.
"""
route_app_labels = {'apply',}

def db_for_read(self, model, **hints):
    """
    Attempts to read auth and contenttypes models go to auth_db.
    """
    if model._meta.app_label in self.route_app_labels:
        return 'apply'
    return None

def db_for_write(self, model, **hints):
    """
    Attempts to write auth and contenttypes models go to auth_db.
    """
    if model._meta.app_label in self.route_app_labels:
        return 'apply'
    return None

def allow_relation(self, obj1, obj2, **hints):
    """
    Allow relations if a model in the auth or contenttypes apps is
    involved.
    """
    if (
        obj1._meta.app_label in self.route_app_labels or
        obj2._meta.app_label in self.route_app_labels
    ):
       return True
    return None

def allow_migrate(self, db, app_label, model_name=None, **hints):
    """
    Make sure the auth and contenttypes apps only appear in the
    'auth_db' database.
    """
    if app_label in self.route_app_labels:
        return db == 'apply'
    return None

main/models

from django.db import models


class Person(models.Model):
    first_name = models.CharField(max_length=15)
    last_name = models.CharField(max_length=6)
    #age = models.IntegerField(default=0)


def __str__(self):
    return f'{self.first_name} {self.last_name}'

apply/models

from django.db import models

# Create your models here.

class Frye(models.Model):
    first_name = models.CharField(max_length=15)
    middle_name = models.CharField(max_length=15)
    last_name = models.CharField(max_length=15)
    age = models.IntegerField()
    height = models.CharField(max_length=9)
    occupation = models.CharField(max_length=30)

def __str__(self):
    return f'{self.first_name} {self.middle_name} {self.last_name} 
{self.age} {self.height} {self.occupation}'

class Homer(models.Model):
   first_name = models.CharField(max_length=15)
   middle_name = models.CharField(max_length=15)
   last_name = models.CharField(max_length=15)
   age = models.IntegerField()
   height = models.CharField(max_length=9)
   occupation = models.CharField(max_length=30)

def __str__(self):
    return f'{self.first_name} {self.middle_name} {self.last_name} 
{self.age} {self.height} {self.occupation}'


class Holt(models.Model):
    first_name = models.CharField(max_length=15)
    middle_name = models.CharField(max_length=15)
    last_name = models.CharField(max_length=15)
    age = models.IntegerField()
    height = models.CharField(max_length=9)
    occupation = models.CharField(max_length=30)

def __str__(self):
    return f'{self.first_name} {self.middle_name} {self.last_name} 
    {self.age} {self.height} {self.occupation}'

Спасибо за ваше время

Вернуться на верх