我有一个大文件models.py,里面有很多类,想要拆分到models子目录中的单独文件。我目前的项目结构是:
project
├── core
| ├── settings
| | └── base.py
| ├── __init__.py
| ├── urls.py
| ├── models.py
| ├── views.py
| └── wsgi.py
├── members
| ├── migrations
| ├── templates
| ├── __init__.py
| ├── forms.py
| ├── models.py
| ├── urls.py
| └── views.py
├── templates
| ├── pages
| | └── register.html
| └── base.html
└── manage.py
我正在尝试将members / models.py拆分为扩展结构,如:
├── members
| ├── models
| | ├── __init__.py
| | ├── account.py
| | └── blabla.py
| ├── migrations
| ├── templates
| ├── __init__.py
| ├── forms.py
| ├── urls.py
| └── views.py
Python 2.7,Django 1.9和django-allauth,所以在account.py我有2个类:
class MyUserManager(UserManager)
和class Account(AbstractBaseUser, PermissionsMixin)
。
在模型/ init .py
中# -*- coding: utf-8 -*-
from account import *
from blabla import *
在设置AUTH_USER_MODEL = 'members.Account'
模型中的所有类都有app_label = 'members'
。
members/__init__.py
为空
我遇到了这个问题:
RuntimeError: Conflicting 'account_groups' models in application 'members':
<class 'members.models.account.Account_groups'> and <class 'models.account.Account_groups'>.
任何想法如何避免它?
感谢。
增加:
DJANGO_APPS = [
'django.contrib.auth',
'django.contrib.sites',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
THIRD_PARTY_APPS = [
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.facebook',
'allauth.socialaccount.providers.google',
'allauth.socialaccount.providers.twitter',
'allauth.socialaccount.providers.vk',
'django_migration_fixture',
'widget_tweaks',
'tz_detect',
]
PROJECT_APPS = [
'core',
'admin',
'members',
]
INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + PROJECT_APPS
答案 0 :(得分:0)
嗯,我认为这个问题与allauth内部模型有关。
我修复了它只是创建了一个名为acc
的新应用程序,并将这两个allauth类插入到此应用程序中的models.py.
:
AUTH_USER_MODEL = 'acc.Account'
PROJECT_APPS = [
'acc',
'core',
'admin',
'members',
]
现在我可以将models.py从成员拆分到带有单独文件的models子目录,并且它运行良好,没有运行时错误。