【发布时间】:2016-03-12 20:21:20
【问题描述】:
Django 1.8。 我收到此错误:
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
在 init 我有以下代码:
from .account import Account
from .transaction import Transaction, RequestedWithdrawal
我不知道 django 从哪里提出了大写事务包,我没有在我的代码中的任何地方使用它。 那么为什么会出现这个错误,以及如何解决呢?
更新。 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
【问题讨论】:
-
我没有对模型使用 init 方法,我使用模型包的 init 文件将模型拆分为不同的文件,没有看到任何反对它的东西在文档中,如果你这样做 - 请提供链接。我的模型路径存在不同情况的问题,它会导致错误,而我当然只有一个路径。
-
你能从
landlord.py、account.py和transation.py添加你的导入 -
是的,我添加了导入
-
您能否尝试删除源代码树中的所有 *.pyc 文件,以防先前存在的 .py 文件中遗留下来的文件。