Mô hình Django “không khai báo app_label rõ ràng”


119

Tôi sắp kết thúc. Sau hàng chục giờ khắc phục sự cố, có lẽ là nhiều hơn nữa, tôi nghĩ rằng cuối cùng tôi đã kinh doanh được, nhưng sau đó tôi nhận được:

Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label 

Có rất ít thông tin về điều này trên web và không có giải pháp nào giải quyết được vấn đề của tôi. Mọi lời khuyên sẽ được đánh giá rất cao.

Tôi đang sử dụng Python 3.4 và Django 1.10.

Từ cài đặt của tôi.py:

INSTALLED_APPS = [
    'DeleteNote.apps.DeletenoteConfig',
    'LibrarySync.apps.LibrarysyncConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Và các tệp apps.py của tôi trông giống như sau:

from django.apps import AppConfig


class DeletenoteConfig(AppConfig):
    name = 'DeleteNote'

from django.apps import AppConfig


class LibrarysyncConfig(AppConfig):
    name = 'LibrarySync'

2
Bạn không có django.contrib.contenttypes trong INSTALLED_APPS.
RemcoGerlich

2
Sau đó, một điều có khả năng khác là bạn đã nhập nó trước khi các mô hình của nó được tải, một số ứng dụng được liệt kê trước contenttypes trong INSTALLED_APPS có sử dụng nó không?
RemcoGerlich

1
Điều đó thật bất thường, bạn không có dự án hay ứng dụng nào của riêng mình?
RemcoGerlich

1
Mọi thứ có mô hình.py phải ở trong INSTALLED_APPS; và nếu một trong số họ sử dụng kiểu nội dung (vì khóa ngoại chung chung, chẳng hạn) thì nó cần phải nằm dưới kiểu nội dung trong danh sách.
RemcoGerlich

1
Bực bội, nó có thể là một cái gì đó rất nhỏ nhưng khó biết từ đâu ra. Bạn có nhập bất kỳ nội dung nào của mình vào settings.py hoặc lâu hơn không?
RemcoGerlich

Câu trả lời:


91

Bạn có thiếu việc điền tên ứng dụng của mình vào tệp cài đặt không? Đây myAppNameConfiglà lớp mặc định được tạo tại apps.py bằng lệnh .manage.py createeapp myAppName . Trong đó myAppName là tên ứng dụng của bạn.

settings.py

INSTALLED_APPS = [
'myAppName.apps.myAppNameConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

Bằng cách này, tệp cài đặt sẽ tìm ra thứ bạn muốn gọi cho ứng dụng của mình. Bạn có thể thay đổi giao diện của nó sau này trong tệp apps.py bằng cách thêm mã sau vào

myAppName / apps.py

class myAppNameConfig(AppConfig):
    name = 'myAppName'
    verbose_name = 'A Much Better Name'

Được rồi, điều này có ý nghĩa với tôi với ví dụ này và tôi đã thực hiện các thay đổi ngay bây giờ dựa trên sự hiểu biết của tôi về cú pháp, nhưng tôi vẫn gặp phải lỗi chính xác 100%. Tôi đã cập nhật bài viết của mình để xây dựng.
Slbox

2
Cảm ơn @xeberdee và @RemcoGerlich đã giúp đỡ về vấn đề này. Cuối cùng, giải pháp của tôi là tải các ứng dụng của tôi bên dưới các ứng dụng django.contrib và chuyển mục nhập import django django.setup()trong settings.py của tôi xuống bên dưới INSTALLED_APPSmục nhập.
Slbox

2
Chỉ vì tò mò - tại sao lại nhập django django.setup () trong tệp cài đặt? Ngoài ra, ứng dụng của bạn sẽ tải ngay cả khi chúng là ứng dụng đầu tiên trong danh sách ứng dụng đã cài đặt.
Xeberdee

1
Sự khác biệt giữa điều này và những gì anh ấy đã viết trong câu hỏi của mình?
Matt D

1
Vấn đề là cách ứng dụng được phát hiện trong cài đặt INSTALLED_APPS thông qua trường tên của lớp trong tệp cấu hình. Bài đã được chỉnh sửa.
Xeberdee

34

Tôi gặp lỗi tương tự và tôi không biết làm thế nào để tìm ra vấn đề này. Tôi đã mất nhiều giờ để nhận thấy rằng tôi có một init.py tại cùng một chỉ thị với management.py từ django.

Trước:

|-- myproject
  |-- __init__.py
  |-- manage.py
  |-- myproject
    |-- ...
  |-- app1
    |-- models.py
  |-- app2
    |-- models.py

Sau:

|-- myproject
  |-- manage.py
  |-- myproject
    |-- ...
  |-- app1
    |-- models.py
  |-- app2
    |-- models.py

Bạn khá bối rối khi gặp lỗi "không khai báo lỗi app_label rõ ràng". Nhưng xóa tệp init này đã giải quyết được vấn đề của tôi.


2
Thánh hút thuốc, tôi đã nhìn cái này rất lâu - bắt tuyệt vời!
user3167654 Ngày

Tôi đang cố gắng tạo tài liệu bằng pydoc và ứng dụng của tôi bị ẩn mà không có init.py
Serg Smyk

20

Tôi đã gặp chính xác lỗi tương tự khi chạy thử nghiệm với PyCharm. Tôi đã sửa nó bằng cách đặt DJANGO_SETTINGS_MODULEbiến môi trường một cách rõ ràng . Nếu bạn đang sử dụng PyCharm, chỉ cần nhấn nút Chỉnh sửa cấu hình và chọn Biến môi trường .

Đặt biến thành your_project_name.settingsvà điều đó sẽ khắc phục sự cố.

Có vẻ như lỗi này xảy ra, vì PyCharm chạy thử nghiệm với chính nó manage.py.


1
Gặp sự cố này khi chạy Thử nghiệm Pycharm mặc dù chạy máy chủ thông qua Pycharm không yêu cầu tôi thêm cài đặt. Thêm DJANGO_SETTINGS_MODULE theo cách thủ công vào cấu hình để kiểm tra được giải quyết nếu đối với tôi.
PhoebeB

1
Ngoài ra, khi chỉnh sửa cấu hình, việc chỉnh sửa mẫu sẽ rất hữu ích.
Yngve Høiseth

1
Cài đặt -> Ngôn ngữ & Khung -> Django -> Thêm giá trị trong cài đặt sẽ tự động đặt DJANGO_SETTINGS_MODULEcho từng cấu hình chạy thử nghiệm Django và Django mới.
Tobias Ernst

FYI, tôi đã làm chính xác như được chỉ ra bởi giải pháp này và nó không hoạt động trong lần đầu tiên. Hóa ra, PyCharm đã không lưu DJANGO_SETTINGS_MODULElần đầu tiên khi tôi nhấp vào Applysau đó OK. Tôi đã làm điều đó lần thứ hai và bây giờ nó hoạt động. Có vẻ như một chút kỳ lạ của PyCharm.
MikeyE

Tôi phải đảm bảo rằng tôi đã khai báo nhập chính xác: from <app>.<module> import <class>- Nhập tự động PyCharm bị thiếu <app>. Khi tôi đã sửa lỗi này (cũng đã kiểm tra các mô-đun phụ thuộc) thì nó hoạt động tốt.
Matthew Hegarty

18

Tôi nhận được cái này khi tôi sử dụng ./manage.py shell sau đó tôi vô tình nhập từ thư mục cấp dự án gốc

# don't do this
from project.someapp.someModule import something_using_a_model
# do this
from someapp.someModule import something_using_a_model

something_using_a_model()

tôi là trường hợp của tôi, tôi phải đổi từ from fields import xsangfrom .fields import x
daigorocub

13

là một noob sử dụng Python3 , tôi thấy đó có thể là lỗi nhập thay vì lỗi Django

Sai lầm:

from someModule import someClass

đúng:

from .someModule import someClass

điều này xảy ra vài ngày trước nhưng tôi thực sự không thể tái tạo nó ... Tôi nghĩ chỉ những người mới sử dụng Django mới có thể gặp phải điều này. đây là những gì tôi nhớ:

cố gắng đăng ký một mô hình trong admin.py:

from django.contrib import admin
from user import User
admin.site.register(User)

cố gắng chạy máy chủ, lỗi trông như thế này

some lines...
File "/path/to/admin.py" ,line 6
tell you there is an import error
some lines...
Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label

thay đổi userthành .user, vấn đề đã được giải quyết


9
Chào mừng bạn đến với stackoverflow! Tôi cảm thấy buộc phải đề cập rằng câu trả lời của bạn không liên quan đến câu hỏi của OP. Là một noob, bạn nên cẩn thận đề xuất các giải pháp mà không xác minh tính đúng đắn của chúng trước. Nhưng hãy tiếp tục quay lại và đăng câu trả lời cụ thể khi bạn có thể — cảm ơn!
evadeflow

1
Tôi ước có nhiều bình luận trên Stack giống như Xeon Phil của bạn. Người dùng mới thường bị đuổi bởi những người bình luận cuồng nhiệt không hài lòng rằng họ không phải là chuyên gia về Stack vào ngày đầu tiên.
Slbox

1
Bạn nói đúng, @evadeflow, câu trả lời đầu tiên của tôi trông thực sự không liên quan, tôi cố gắng làm rõ câu trả lời. Dù sao, chỉ hy vọng câu trả lời có thể hữu ích.
rpstw

Đó là một vấn đề tương tự trong trường hợp của tôi. 'from ..core.models import CommonInfo' phải trở thành 'from apps.core.models import CommonInfo'
user42488

Đây là vấn đề của tôi, bị che khuất vì nó đang xảy ra trong 2 tệp riêng biệt. Đăng bạn, nhập khẩu lồng nhau! Đặng bạn, sự từ chối ngu ngốc của tôi về những thay đổi hợp lý của 2to3!
9999years

13

Tôi đã có cùng một vấn đề vừa rồi. Tôi đã sửa lỗi của mình bằng cách thêm một không gian tên vào tên ứng dụng. Hy vọng ai đó thấy điều này hữu ích.

apps.py

from django.apps import AppConfig    

class SalesClientConfig(AppConfig):
        name = 'portal.sales_client'
        verbose_name = 'Sales Client'

8

Tôi gặp lỗi này khi nhập mô hình trong thử nghiệm, tức là với cấu trúc dự án Django này:

|-- myproject
    |-- manage.py
    |-- myproject
    |-- myapp
        |-- models.py  # defines model: MyModel
        |-- tests
            |-- test_models.py

trong tệp test_models.pytôi đã nhập MyModeltheo cách này:

from models import MyModel

Sự cố đã được khắc phục nếu nó được nhập theo cách này:

from myapp.models import MyModel

Hi vọng điêu nay co ich!

Tái bút: Có lẽ điều này hơi muộn, nhưng tôi không tìm thấy ở những người khác câu trả lời làm thế nào để giải quyết vấn đề này trong mã của tôi và tôi muốn chia sẻ giải pháp của mình.


juliocesar bạn là một nhà vô địch. Cảm ơn. Đây là một lỗi vô lý.
Kirk

2
Tôi đã mất nhiều thời gian hơn mong đợi để tìm thấy điều này. Tôi đang sử dụng phép nhập tương đối trong tệp test.py của mình. Gặp lỗi khi sử dụng from .models import MyModel. Thay đổi để from myapp.models import MyModelkhắc phục sự cố.
Monut

@monkut giống nhau ở đây. Tôi tự hỏi tại sao điều này lại xảy ra. Nhân tiện, tôi sử dụng thư mục ứng dụng tùy chỉnh. "/ apps" trong thư mục gốc, được thêm vào đường dẫn.

4

Sau khi tiếp tục gặp vấn đề này và tiếp tục quay lại câu hỏi này, tôi nghĩ rằng mình sẽ chia sẻ vấn đề của mình là gì.

Mọi thứ mà @Xeberdee đều đúng, vì vậy hãy làm theo điều đó và xem liệu điều đó có giải quyết được vấn đề hay không, nếu không phải đây là vấn đề của tôi:

Trong apps.py đây là những gì tôi có:

class AlgoExplainedConfig(AppConfig):
    name = 'algo_explained'
    verbose_name = "Explain_Algo"
    ....

Và tất cả những gì tôi đã làm là thêm tên dự án vào trước tên ứng dụng của mình như sau:

class AlgoExplainedConfig(AppConfig):
name = '**algorithms_explained**.algo_explained'
verbose_name = "Explain_Algo"

và điều đó đã giải quyết được vấn đề của tôi và tôi đã có thể chạy lệnh makemigrations và di chuyển sau đó! chúc may mắn


3

Tôi đã gặp lỗi này hôm nay khi cố gắng chạy thử nghiệm Django vì tôi đang sử dụng from .models import *cú pháp viết tắt trong một trong các tệp của mình. Vấn đề là tôi có cấu trúc tệp như vậy:

    apps/
      myapp/
        models/
          __init__.py
          foo.py
          bar.py

models/__init__.pytôi đang nhập các mô hình của mình bằng cú pháp viết tắt:

    from .foo import *
    from .bar import *

Trong ứng dụng của tôi, tôi đã nhập các mô hình như vậy:

    from myapp.models import Foo, Bar

Điều này gây ra Django model doesn't declare an explicit app_labelkhi chạy./manage.py test .

Để khắc phục sự cố, tôi phải nhập rõ ràng từ đường dẫn đầy đủ trong models/__init__.py:

    from myapp.models.foo import *
    from myapp.models.bar import *

Điều đó đã được chăm sóc của lỗi.

H / t https://medium.com/@michal.bock/fix-weird-exceptions-when-running-django-tests-f58def71b59a


Đây cũng là vấn đề đối với tôi. Cảm ơn!
Sam Creamer

3

Trong trường hợp của tôi, điều này đã xảy ra bởi vì tôi đã sử dụng một con đường mô-đun tương đối trong dự án cấp urls.py , INSTALLED_APPSapps.pythay vì được bắt rễ trong thư mục gốc của dự án. tức là các đường dẫn mô-đun tuyệt đối xuyên suốt, chứ không phải là các đường dẫn mô-đun tương đối + hack.

Cho dù tôi có lộn xộn với các đường dẫn trong INSTALLED_APPSapps.pytrong ứng dụng của mình đến đâu, tôi cũng không thể có được cả hai runserverpytesthoạt động cho đến khi cả ba đường dẫn đó đều được bắt nguồn từ gốc dự án.

Cấu trúc thư mục:

|-- manage.py
|-- config
    |-- settings.py
    |-- urls.py
|-- biz_portal
    |-- apps
        |-- portal
            |-- models.py
            |-- urls.py
            |-- views.py
            |-- apps.py

Với những điều sau đây, tôi có thể chạy manage.py runservervà gunicorn với wsgi và sử dụng portalquan điểm ứng dụng mà không gặp khó khăn, nhưng pytest sẽ lỗi với ModuleNotFoundError: No module named 'apps'DJANGO_SETTINGS_MODULE đã được định cấu hình chính xác.

config / settings.py:

INSTALLED_APPS = [
    ...
    "apps.portal.apps.PortalConfig",
]

biz_portal / apps / portal / apps.py:

class PortalConfig(AppConfig):
    name = 'apps.portal'

config / urls.py:

urlpatterns = [
    path('', include('apps.portal.urls')),
    ...
]

Thay đổi tham chiếu ứng dụng trong config / settings.py thành biz_portal.apps.portal.apps.PortalConfigPortalConfig.nameđể biz_portal.apps.portalcho phép pytest chạy (tôi chưa có thử nghiệm cho các portallượt xem) nhưng runserversẽ xảy ra lỗi với

RuntimeError: Model class apps.portal.models.Business không khai báo app_label rõ ràng và không có trong một ứng dụng trong INSTALLED_APPS

Cuối cùng, tôi đã gửi email apps.portalđể xem những gì vẫn đang sử dụng một đường dẫn tương đối và thấy rằng config / urls.py cũng nên sử dụng biz_portal.apps.portal.urls.


Hack với đường dẫn tương đối ......... Cũng làm như vậy. Thông tin chi tiết của bạn đã giúp tôi rất nhiều
zar3bski

2

Tôi đã gặp phải lỗi này khi thử tạo di chuyển cho một ứng dụng có các di chuyển không đúng định dạng hiện tại do hợp nhất git. ví dụ

manage.py makemigrations myapp

Khi tôi xóa, nó sẽ di chuyển và sau đó chạy:

manage.py makemigrations

lỗi không xảy ra và quá trình di chuyển được tạo thành công.


Cảm ơn bạn. Những cuộc di cư tiếp tục gây khó chịu.
HashRocketSyntax

2

Tôi gặp sự cố tương tự, nhưng tôi đã có thể giải quyết bằng cách chỉ định rõ ràng app_label bằng Meta Class trong lớp mô hình của mình

class Meta:
    app_label  = 'name_of_my_app'

Cảm ơn Benjamin! Trong dự án Django của tôi, tôi đang sử dụng Sphinx để tạo tài liệu và chỉ thị :: autosystem đưa ra lỗi "app_label" cho đến khi tôi thêm nó vào lớp Meta của Model như bạn đề xuất.
Stefan Musarra

rất vui vì nó đã làm việc cho bạn
Benjamin Andoh

1

Tôi gặp lỗi này khi cố gắng nâng cấp ứng dụng Django Rest Framework của mình lên DRF 3.6.3 và Django 1.11.1.

Đối với bất kỳ ai khác trong tình huống này, tôi đã tìm thấy giải pháp của mình trong vấn đề GitHub , đó là bỏ UNAUTHENTICATED_USERthiết lập trong cài đặt DRF :

# webapp/settings.py
...
REST_FRAMEWORK = {
    ...
    'UNAUTHENTICATED_USER': None
    ...
}

1

Tôi chỉ gặp vấn đề này và tìm ra những gì đang xảy ra. Vì không có câu trả lời nào trước đây mô tả vấn đề như nó đã xảy ra với tôi, nên tôi sẽ đăng nó cho những người khác:

  • vấn đề đến từ việc sử dụng python migrate.py startapp myApptừ thư mục gốc dự án của tôi, sau đó di chuyển myApp vào một thư mục con vớimv myApp myFolderWithApps/ .
  • Tôi đã viết myApp.models và chạy python migrate.py makemigrations . Tất cả đều tốt.
  • thì tôi cũng làm như vậy với một ứng dụng khác đang nhập mô hình từ myApp. Kaboom! Tôi đã gặp lỗi này khi thực hiện chỉnh sửa. Đó là bởi vì tôi phải sử dụngmyFolderWithApps.myApp để tham chiếu ứng dụng của mình, nhưng tôi đã quên cập nhật MyApp / apps.py. Vì vậy, tôi đã sửa lại myApp / apps.py, settings / INSTALLED_APPS và đường dẫn nhập trong ứng dụng thứ hai của mình.
  • nhưng sau đó lỗi vẫn tiếp tục xảy ra: lý do là tôi đã di chuyển cố gắng nhập các mô hình từ myApp với đường dẫn sai. Tôi đã cố gắng sửa tệp di chuyển, nhưng tôi đã đi đến điểm dễ dàng hơn khi đặt lại DB và xóa các di chuyển để bắt đầu lại từ đầu.

Vì vậy, để viết một câu chuyện dài: - vấn đề ban đầu đến từ tên ứng dụng sai trong apps.py của myApp, trong cài đặt và trong đường dẫn nhập của ứng dụng thứ hai của tôi. - nhưng nó không đủ để sửa các đường dẫn ở ba nơi này, vì quá trình di chuyển đã được tạo với các lần nhập tham chiếu sai tên ứng dụng. Do đó, lỗi tương tự vẫn tiếp tục xảy ra trong khi di chuyển (ngoại trừ lần này là do di chuyển).

Vì vậy, ... hãy kiểm tra di chuyển của bạn và chúc may mắn!


1

Tôi đã gặp một lỗi tương tự khi tạo API trong Django rest_framework.

RuntimeError: Model class apps.core.models.University không khai báo> app_label rõ ràng và không có trong ứng dụng trong INSTALLED_APPS.

Câu trả lời của luke_aus đã giúp tôi bằng cách sửa lại urls.py

từ

from project.apps.views import SurgeryView

đến

from apps.views import SurgeryView

Đối với tôi, tôi đã giấu nó trong một cuộc di cư. Không chắc điều đó đã xảy ra như thế nào, nhưng việc xóa tên / đường dẫn dự án đã khắc phục mọi thứ.
Michael Thompson

1

Trong trường hợp của tôi, tôi gặp lỗi này khi chuyển mã từ Django 1.11.11 sang Django 2.2. Tôi đang xác định một lớp dẫn xuất FileSystemStorage tùy chỉnh. Trong Django 1.11.11, tôi có dòng sau trong models.py:

from django.core.files.storage import Storage, DefaultStorage

và sau đó trong tệp, tôi có định nghĩa lớp:

class MyFileStorage(FileSystemStorage):

Tuy nhiên, trong Django 2.2, tôi cần tham chiếu rõ ràng FileSystemStorage lớp khi nhập:

from django.core.files.storage import Storage, DefaultStorage, FileSystemStorage

và voilà !, lỗi sẽ biến mất.

Lưu ý rằng mọi người đang báo cáo phần cuối cùng của thông báo lỗi do máy chủ Django đưa ra. Tuy nhiên, nếu bạn cuộn lên, bạn sẽ tìm thấy lý do ở giữa lỗi mambo-jambo đó.


1

trong trường hợp của tôi, tôi có thể tìm thấy bản sửa lỗi và bằng cách xem mã của những người khác, nó có thể là vấn đề tương tự .. Tôi chỉ cần thêm 'django.contrib.sites' vào danh sách các ứng dụng đã cài đặt trong settings.py tập tin.

hy vọng điều này sẽ giúp ai đó. đây là đóng góp đầu tiên của tôi cho cộng đồng mã hóa


1

TL; DR: Thêm __init__.py trống khắc phục sự cố cho tôi.

Tôi đã gặp lỗi này trong PyCharm và nhận ra rằng tệp cài đặt của tôi chưa được nhập. Không có lỗi rõ ràng nào cho tôi biết điều này, nhưng khi tôi đặt một số mã vô nghĩa vào settings.py, nó không gây ra lỗi.

Tôi đã có settings.py bên trong thư mục local_settings . Tuy nhiên, tôi muốn bao gồm một __init__.py trong cùng một thư mục để cho phép nó được nhập. Sau khi tôi thêm điều này, lỗi đã biến mất.


1

Nếu bạn có tất cả các cấu hình đúng, nó có thể chỉ là một mớ hỗn độn nhập. theo dõi cách bạn đang nhập mô hình vi phạm.

Sau đây sẽ không hoạt động from .models import Business. Sử dụng đường dẫn nhập đầy đủ để thay thế:from myapp.models import Business


1

Nếu vẫn thất bại và nếu bạn gặp lỗi này trong khi cố gắng nhập trong "bảng điều khiển Python" (hoặc "bảng điều khiển Django") của PyCharm:

Thử khởi động lại bảng điều khiển.

Điều này khá là bối rối, nhưng tôi phải mất một lúc trước khi nhận ra rằng mình đã quên làm điều đó.

Đây là những gì đã xảy ra:

Đã thêm một ứng dụng mới, sau đó thêm một mô hình tối thiểu, sau đó cố gắng nhập mô hình vào bảng điều khiển Python / Django (PyCharm pro 2019.2). Điều này làm phát sinh doesn't declare an explicit app_labellỗi, vì tôi chưa thêm ứng dụng mới vào INSTALLED_APPS. Vì vậy, tôi đã thêm ứng dụng vào INSTALLED_APPS, thử nhập lại nhưng vẫn gặp lỗi tương tự.

Đến đây, đọc tất cả các câu trả lời khác, nhưng dường như không có gì phù hợp.

Cuối cùng, tôi vẫn chưa khởi động lại bảng điều khiển Python sau khi thêm ứng dụng mới vào INSTALLED_APPS.

Lưu ý: không thể khởi động lại bảng điều khiển Python PyCharm, sau khi thêm một đối tượng mới vào một mô-đun, cũng là một cách tuyệt vời để nhận được một ImportError: Cannot import name ...


Cảm ơn cho câu trả lời này, tôi quên nguồn của tôi .envtập tin và tôi đã làm hết sức mình để làm cho mọi việc làm việc với một cấu hình lỗi thời: /
sodimel

1

O ... M ... G Tôi cũng gặp lỗi này và tôi đã dành gần 2 ngày cho nó và bây giờ cuối cùng tôi đã giải quyết được. Thành thật mà nói ... lỗi không liên quan gì đến vấn đề. Trong trường hợp của tôi, đó là một vấn đề đơn giản về cú pháp. Tôi đang cố gắng chạy một mô-đun python độc lập sử dụng một số mô hình django trong ngữ cảnh django, nhưng bản thân mô-đun không phải là mô hình django. Nhưng tôi đã khai báo sai lớp

thay vì có

class Scrapper:
    name = ""
    main_link= ""
    ...

tôi đã làm

class Scrapper(Website):
    name = ""
    main_link= ""
    ...

mà rõ ràng là sai. Thông báo gây hiểu lầm đến nỗi tôi không thể không nghĩ rằng đó là một số vấn đề với cấu hình hoặc chỉ sử dụng django sai cách vì tôi rất mới sử dụng nó.

Tôi sẽ chia sẻ điều này ở đây cho một người mới như tôi đang trải qua cùng một sự ngu ngốc hy vọng có thể giải quyết vấn đề của họ.


0

Tôi nhận được lỗi này sau khi tôi di chuyển SECRET_KEYđể kéo từ một biến môi trường và quên đặt nó khi chạy ứng dụng. Nếu bạn có một cái gì đó như thế này trongsettings.py

SECRET_KEY = os.getenv('SECRET_KEY')

sau đó đảm bảo rằng bạn đang thực sự thiết lập biến môi trường.


0

Hầu hết có thể bạn có nhập khẩu phụ thuộc .

Trong trường hợp của tôi, tôi đã sử dụng một lớp serializer làm tham số trong mô hình của mình và lớp serializer đang sử dụng mô hình này: serializer_class = AccountSerializer

from ..api.serializers import AccountSerializer

class Account(AbstractBaseUser):
    serializer_class = AccountSerializer
    ...

Và trong tệp "serializers":

from ..models import Account

class AccountSerializer(serializers.ModelSerializer):
    class Meta:
        model = Account
        fields = (
            'id', 'email', 'date_created', 'date_modified',
            'firstname', 'lastname', 'password', 'confirm_password')
    ...

0

Tôi gặp lỗi này hôm nay và đã kết thúc ở đây sau khi googling. Không có câu trả lời hiện có nào có vẻ phù hợp với tình huống của tôi. Điều duy nhất tôi cần làm là nhập một mô hình từ__init__.py tệp ở cấp cao nhất của một ứng dụng. Tôi đã phải chuyển các mục nhập của mình vào các chức năng bằng cách sử dụng mô hình.

Django dường như có một số mã kỳ lạ có thể bị lỗi như thế này trong rất nhiều trường hợp khác nhau!


0

Tôi cũng nhận được lỗi này ngày hôm nay. Thông báo đã tham chiếu đến một số ứng dụng cụ thể trong số các ứng dụng của tôi trong INSTALLED_APPS . Nhưng trên thực tế, nó không liên quan gì đến ứng dụng cụ thể này. Tôi đã sử dụng Môi trường ảo mới và quên cài đặt một số Thư viện mà tôi đã sử dụng trong dự án này. Sau khi tôi cài đặt các Thư viện bổ sung, nó đã hoạt động.


0

Đối với người dùng PyCharm: Tôi đã gặp lỗi khi sử dụng cấu trúc dự án không "sạch".

Là:

project_root_directory
└── src
    ├── chat
       ├── migrations
       └── templates
    ├── django_channels
    └── templates

Hiện nay:

project_root_directory
├── chat
   ├── migrations
   └── templates
       └── chat
├── django_channels
└── templates

Đây là rất nhiều giải pháp tốt, nhưng tôi nghĩ, trước hết, bạn nên làm sạch cấu trúc dự án của mình hoặc điều chỉnh cài đặt PyCharm Django trước khi đặt DJANGO_SETTINGS_MODULEcác biến, v.v.

Hy vọng nó sẽ giúp một ai đó. Chúc mừng.


-1

Vấn đề là:

  1. Bạn đã thực hiện các sửa đổi đối với tệp mô hình của mình nhưng chưa thêm chúng vào DB, nhưng bạn đang cố chạy máy chủ chạy Python management.py.

  2. Chạy Python management.py makemigrations

  3. Python management.py di chuyển

  4. Bây giờ Python management.py chạy máy chủ và tất cả đều ổn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.