Django 多个应用程序连接到多个数据库(sqlite)

时间:2021-06-30 10:19:49

标签: python django sqlite

我有两个 Django 应用程序,
每个都有一个models.py.
我想将数据库连接到每个应用程序,
我该怎么办?

第一个应用程序是通知。如果只通知连接到数据库,它会正常工作。

#/notice/models.py

from django.db import models
from django.db.models.base import Model

class Notice(models.Model):
    subject = models.CharField(max_length=100)
    content = models.TextField()
    create_date = models.DateTimeField()
    
    def __str__(self):
        return self.subject

这是第二个应用程序,rc_db。如果我连接rc_db,则出现最低错误。

#/rc_db/models.py

from django.db import models
from django.db.models.base import Model

# Create your models here.
class rc_db(models.Model):
    subject = models.CharField(max_length=100)
    content = models.TextField()
    create_date = models.DateTimeField()
#/config/settings/base.py

BASE_DIR = Path(__file__).resolve().parent.parent.parent

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'info',
    'rcdb',
    'notice.apps.NoticeConfig',
    'rc_db.apps.RcDbConfig',
]

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

出现这样的错误。

django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: rc_db

1 个答案:

答案 0 :(得分:0)

我从 base.py 中删除了 rcdb,它可以正常工作。

#/config/settings/base.py

BASE_DIR = Path(__file__).resolve().parent.parent.parent

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'info',
    'notice.apps.NoticeConfig',
    'rc_db.apps.RcDbConfig',
]