2016-03-29 2 views
0

Ich habe eine große Datei models.py mit vielen Klassen darin und möchte aufteilen, um Dateien im Unterverzeichnis des Modells zu trennen. Mein aktuelles Projekt der Struktur ist:Wie man models.py spaltet, um Dateien ohne doppelte Importfalle in Django zu spalten

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 

Ich versuche Mitglieder/models.py zu erweiterten Struktur zu spalten wie:

├── members 
| ├── models 
| | ├── __init__.py 
| | ├── account.py 
| | └── blabla.py 
| ├── migrations 
| ├── templates 
| ├── __init__.py 
| ├── forms.py 
| ├── urls.py 
| └── views.py 

Python 2.7, Django 1.9 und django-allauth an Bord so in Rechnung .py Ich habe 2 Klassen:

class MyUserManager(UserManager) und class Account(AbstractBaseUser, PermissionsMixin).

In models/init Py

# -*- coding: utf-8 -*- 
from account import * 
from blabla import * 

In Einstellungen AUTH_USER_MODEL = 'members.Account'

Alle Klassen in Modelle haben app_label = 'members'.

members/__init__.py ist leer

ich dieses Problem bekommen haben:

RuntimeError: Conflicting 'account_groups' models in application 'members': 
<class 'members.models.account.Account_groups'> and <class 'models.account.Account_groups'>. 

Irgendwelche Ideen, wie es zu vermeiden?

Danke.

ZUSÄTZLICH:

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

Ihre settings.INSTALLED_APPS hinzufügen –

+0

Siehe http://paltman.com/breaking-apart-models-in-django/ – Kedar

+0

@kedar leider does't Werke, gleiches Problem – johndark

Antwort

0

Nun, ich denke, das Problem mit allauth internen Modellen verbindet. Ich reparierte es gerade erstellte neue App mit dem Namen acc und fügen Sie beide allauth Klassen zu models.py in dieser App ein.

in Einstellungen jetzt:

AUTH_USER_MODEL = 'acc.Account' 

PROJECT_APPS = [ 
    'acc', 
    'core', 
    'admin', 
    'members', 
] 

Jetzt kann ich von Mitgliedern Modelle Unterverzeichnis mit separaten Dateien aufgeteilt models.py und es funktioniert gut w/o Laufzeitfehler.