2016-03-12 37 views
0

Django 1.8。 我得到這個錯誤:Django - 應用程序中相互衝突的模型,但路徑相同但不同的情況

Traceback (most recent call last): 
[35mrentapp | [0m File "/home/rentapplication/django-rentapplication/manage.py", line 10, in <module> 
[35mrentapp | [0m execute_from_command_line(sys.argv) 
[35mrentapp | [0m File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 338, in execute_from_command_line 
[35mrentapp | [0m utility.execute() 
[35mrentapp | [0m File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 312, in execute 
[35mrentapp | [0m django.setup() 
[35mrentapp | [0m File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 18, in setup 
[35mrentapp | [0m apps.populate(settings.INSTALLED_APPS) 
[35mrentapp | [0m File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 108, in populate 
[35mrentapp | [0m app_config.import_models(all_models) 
[35mrentapp | [0m File "/usr/local/lib/python2.7/dist-packages/django/apps/config.py", line 198, in import_models 
[35mrentapp | [0m self.models_module = import_module(models_module_name) 
[35mrentapp | [0m File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module 
[35mrentapp | [0m __import__(name) 
[35mrentapp | [0m File "/home/rentapplication/django-rentapplication/accounts/models/__init__.py", line 3, in <module> 
[35mrentapp | [0m from .landlord import Landlord 
[35mrentapp | [0m File "/home/rentapplication/django-rentapplication/accounts/models/landlord.py", line 20, in <module> 
[35mrentapp | [0m from accounting.models import Account 
[35mrentapp | [0m File "/home/rentapplication/django-rentapplication/accounting/models/__init__.py", line 2, in <module> 
[35mrentapp | [0m from .transaction import Transaction, RequestedWithdrawal 
[35mrentapp | [0m File "/home/rentapplication/django-rentapplication/accounting/models/transaction.py", line 16, in <module> 
[35mrentapp | [0m class Transaction(TimeStampedModel): 
[35mrentapp | [0m File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 309, in __new__ 
[35mrentapp | [0m new_class._meta.apps.register_model(new_class._meta.app_label, new_class) 
[35mrentapp | [0m File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 221, in register_model 
[35mrentapp | [0m (model_name, app_label, app_models[model_name], model)) 
[35mrentapp | [0mRuntimeError: Conflicting 'transaction' models in application 'accounting': <class 'accounting.models.Transaction.Transaction'> and <class 'accounting.models.transaction.Transaction'>. 

我的情況如下:

accounting 
    api 
    migrations 
    models 
    __init__.py 
    account.py 
    transaction.py 

初始化我有以下代碼:

from .account import Account 
from .transaction import Transaction, RequestedWithdrawal 

我沒有從那裏Django的想法想出了大寫事務包,我沒有在代碼中的任何地方使用它。 那麼,爲什麼我有這個錯誤,以及如何解決它?

UPDATE。 account.py進口

import StringIO 
import csv 
import logging 
from decimal import Decimal 

from django.conf import settings 
from django.db import models 
from django.db.models import Q 
from django_extensions.db.models import TimeStampedModel 
from notifications import notify 

logger = logging.getLogger(__name__) 
from accounting.tasks import notify_of_withdrawal_request_action 

landlord.py進口

import datetime 
import logging 
from decimal import Decimal 
from collections import Counter 
import random 
import string 
import analytics 

from django.utils.timezone import utc 
from django.utils.functional import cached_property 
from django.utils.timezone import now 
from django.db import models, transaction 
from django.contrib.auth.models import User 
from django_extensions.db.models import TimeStampedModel 
from easy_thumbnails.fields import ThumbnailerImageField 
from jsonfield import JSONField 
import stripe 
from rentapplication.utils import generate_random_slug 
from applications.models import ApplicationTemplate 
from accounting.models import Account 
from reports.models import Report, ReportSourceProfile, ReportSource 
from django.core.exceptions import ValidationError 
from django.contrib.auth.tokens import default_token_generator 
from django.conf import settings 
import base64 

transaction.py進口

import logging 
from decimal import Decimal 


logger = logging.getLogger(__name__) 

from django.db import models 
from django_fsm import FSMField, transition 
from django_extensions.db.models import TimeStampedModel 

from reports.models import Report 

import stripe 
+0

對於模型,我沒有使用__init__方法,即時使用__init__文件模型包將模型分成不同的文件,沒有看到任何反對它的文檔,如果你這樣做 - 請提供一個鏈接。問題是我的模型有不同的情況,它導致了一個錯誤,而我當然只有一條路徑。 – Aldarund

+0

您可以從'landlord.py',''account.py'和'transation.py'添加您的導入嗎? – sudshekhar

+0

是的,我已經添加了導入 – Aldarund

回答

0

我不知道爲什麼我看到這個奇怪的錯誤消息和堆棧跟蹤。但問題是在models.py和tasks.py中循環導入。

相關問題