Django मॉडल "एक स्पष्ट app_label घोषित नहीं करता है"


119

मैं बुद्धि के अंत में हूँ। समस्या निवारण के एक दर्जन घंटे के बाद, शायद अधिक, मुझे लगा कि मैं अंत में व्यवसाय में था, लेकिन फिर मुझे मिला:

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

वेब पर इस पर SO LITTLE जानकारी है, और वहां से कोई हल नहीं निकलने से मेरी समस्या हल हो गई है। किसी भी सलाह काफी सराहना की जाएगी।

मैं पायथन 3.4 और Django 1.10 का उपयोग कर रहा हूं।

मेरी सेटिंग से:

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',
]

और मेरी apps.py फाइलें इस तरह दिखती हैं:

from django.apps import AppConfig


class DeletenoteConfig(AppConfig):
    name = 'DeleteNote'

तथा

from django.apps import AppConfig


class LibrarysyncConfig(AppConfig):
    name = 'LibrarySync'

2
INSTALLED_APPS में आपके पास django.contrib.contenttypes नहीं है।
रेमकोगर्लिच

2
फिर दूसरी संभावित बात यह है कि आपने इसे आयात किया था इससे पहले कि इसके मॉडल लोड किए गए थे, कुछ ऐप है जो इसे उपयोग करने वाले INSTALLED_APPS में सामग्री से पहले सूचीबद्ध है?
रेमकोगर्लिच

1
यह असामान्य है, आपके पास अपनी खुद की कोई परियोजना या ऐप नहीं है?
रेमकोगर्लिच

1
एक मॉडल के लिए जो कुछ भी है, वह INSTALLED_APPS में होना चाहिए; और यदि उनमें से कोई एक कंटेंटटाइप का उपयोग करता है (जेनेरिक विदेशी कुंजी के कारण, कहता है) तो उसे सूची में सामग्री के तहत होना चाहिए।
रेमकोगर्लिच

1
निराशा होती है, यह बहुत छोटा होने की संभावना है, लेकिन यहां से कहना मुश्किल है। क्या आप अपने किसी भी सामान को settings.py या so में आयात करते हैं?
रेमकोगर्लिच

जवाबों:


91

क्या आप सेटिंग फ़ाइल में अपना एप्लिकेशन नाम डाल रहे हैं? myAppNameConfigडिफ़ॉल्ट रूप से apps.py में उत्पन्न वर्ग है .manage.py createapp myAppName आदेश। जहां myAppName आपके ऐप का नाम है।

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',
]

इस तरह, सेटिंग फ़ाइल को पता चलता है कि आप अपने एप्लिकेशन को क्या कॉल करना चाहते हैं। आप निम्न कोड में जोड़कर apps.py फ़ाइल में बाद में कैसा दिखता है इसे बदल सकते हैं

myAppName / apps.py

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

ठीक है तो यह उदाहरण के साथ मेरे लिए बहुत मायने रखता है, और मैंने सिंटैक्स की मेरी समझ के आधार पर अब परिवर्तनों को लागू किया है, लेकिन मैं अभी भी 100% सटीक एक ही त्रुटि मार रहा हूं। मैंने अपनी पोस्ट को विस्तार से बताया है।
स्लेटबॉक्स

2
इसकी मदद के लिए @xeberdee और @RemcoGerlich को धन्यवाद। अंत में, मेरा समाधान django.contrib एप्लिकेशन के नीचे मेरे ऐप्स लोड करना और प्रविष्टि के import django django.setup()नीचे, मेरी सेटिंग्स में मेरे प्रवेश को स्थानांतरित करना था INSTALLED_APPS
स्लोबोक्स

2
बस जिज्ञासा से बाहर - क्यों सेटिंग्स फ़ाइल में django django.setup () आयात करें? इसके अलावा, आपके ऐप्स को तब भी लोड होना चाहिए, जब वे इंस्टॉल किए गए एप्लिकेशन सूची में पहले हों।
Xeberdee

1
इसमें क्या अंतर है और उसने अपने प्रश्न में क्या लिखा है?
मैट डी।

1
बिंदु यह था कि एप्लिकेशन को सेटिंग्स में कैसे खोजा जाता है INSTALLED_APPS को कॉन्फ़िगरेशन फ़ाइल में वर्ग के नाम फ़ील्ड के माध्यम से। पोस्ट को संपादित किया गया है।
Xeberdee

35

मुझे वही त्रुटि मिलती है और मुझे नहीं पता कि इस समस्या का कैसे पता लगाया जाए। मुझे यह नोटिस करने में कई घंटे लग गए कि मेरे पास एक direcory पर एक init.py है जैसा कि django से मैनेज करने के लिए Oracle।

इससे पहले:

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

उपरांत:

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

यह काफी उलझन में है कि आपको यह "स्पष्ट app_label" त्रुटि घोषित नहीं करता है। लेकिन इस इनिट फ़ाइल को हटाने से मेरी समस्या हल हो गई।


2
पवित्र धूम्रपान, मैं इतने लंबे समय के लिए देख रहा था - महान पकड़!
user3167654

मैं pydoc का उपयोग कर दस्तावेज़ बनाने की कोशिश कर रहा हूं, और मेरा ऐप init.py के बिना छिपा हुआ है
Serg Smyk

20

जब मैं PyCharm के साथ परीक्षण चला रहा था तो बिल्कुल वही त्रुटि थी। मैंने इसे स्पष्ट रूप से DJANGO_SETTINGS_MODULEपर्यावरण चर सेट करके तय किया है । यदि आप Pyharm का उपयोग कर रहे हैं, तो बस विन्यास बटन दबाएं और पर्यावरण चर का चयन करें

चर को सेट करें your_project_name.settings और उस चीज़ को ठीक करना चाहिए।

ऐसा लगता है कि यह त्रुटि तब होती है, क्योंकि PyCharm अपने स्वयं के साथ परीक्षण चलाता है manage.py


1
यह समस्या थी Pycharm टेस्ट चलाने हालांकि Pycharm के माध्यम से सर्वर चलाने के लिए मुझे सेटिंग्स जोड़ने की आवश्यकता नहीं थी। यदि मेरे लिए परीक्षण समाधान के लिए मैन्युअल रूप से DJANGO_SETTINGS_MODULE जोड़ रहा है।
फोबेबी

1
कॉन्फ़िगरेशन को संपादित करते समय भी, यह टेम्पलेट्स को संपादित करने के लिए उपयोगी है।
यंगवे होइसेथ

1
सेटिंग्स -> भाषाएँ और फ्रेमवर्क -> Django -> सेटिंग्स के तहत एक मूल्य जोड़ने से DJANGO_SETTINGS_MODULEप्रत्येक नए Django और Django टेस्ट रन कॉन्फ़िगरेशन के लिए स्वचालित रूप से सेट हो जाएगा ।
टोबियास अर्नस्ट

FYI करें, मैंने इस समाधान से संकेत दिया था और यह पहली बार काम नहीं किया था। DJANGO_SETTINGS_MODULEजब मैं क्लिक किया Applyतब पहली बार , PyCharm ने बचत नहीं की OK। मैंने इसे दूसरी बार किया और अब यह काम करता है। लगता है जैसे PyCharm अजीबता का एक सा है।
मिकी

मुझे यह सुनिश्चित करना था कि मैं आयातों को सही ढंग से घोषित <app>.<module> import <class>करूं : - PyCharm ऑटो आयात गायब था <app>। एक बार जब मैंने इसे ठीक कर लिया (निर्भर मॉड्यूल की भी जाँच की) तो यह ठीक काम किया।
मैथ्यू हेगार्टी

18

मुझे यह तब मिला जब मैंने उपयोग किया ./manage.py shell तब मैं गलती से रूट प्रोजेक्ट स्तर निर्देशिका से आयात किया गया था

# 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()

मेरे मामले im, मैं से बदलना पड़ा from fields import xकरने के लिएfrom .fields import x
daigorocub

13

पायथन 3 का उपयोग करते हुए एक noob के रूप में , मुझे लगता है कि यह एक Django त्रुटि के बजाय एक आयात त्रुटि हो सकती है

गलत:

from someModule import someClass

सही:

from .someModule import someClass

यह कुछ दिन पहले होता है, लेकिन मैं वास्तव में इसे पुन: पेश नहीं कर सकता ... मुझे लगता है कि Django के लिए केवल नए लोग ही इसका सामना कर सकते हैं। कहीं ऐसा नहीं है कि मैं क्या देख रहा हूं:

एक मॉडल को admin.py में पंजीकृत करने का प्रयास करें:

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

सर्वर चलाने का प्रयास करें, त्रुटि इस तरह दिखती है

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

बदलने के userलिए .user, समस्या हल हो गई


9
Stackoverflow में आपका स्वागत है! मैं यह उल्लेख करने के लिए मजबूर हूं कि आपका उत्तर ओपी के प्रश्न से असंबंधित है। एक दोपहर के रूप में, आपको पहले उनकी शुद्धता की पुष्टि किए बिना समाधानों का प्रस्ताव रखना चाहिए। लेकिन कृपया वापस आते रहें, और जब आप कर सकते हैं तब ठोस जवाब दें - धन्यवाद!
evadflow

1
मैं चाहता हूं कि स्टैक पर अधिक टिप्पणियां आपकी एक्सोन फिल की तरह थीं। बहुत बार नए उपयोगकर्ताओं को असभ्य टिप्पणी करने वालों द्वारा दुखी किया जाता है कि वे एक दिन स्टैक विशेषज्ञ नहीं हैं।
स्लैब

1
आप सही हैं, @evadeflow, मेरा पहला उत्तर वास्तव में असंबंधित लग रहा है, मैं उत्तर स्पष्ट करने का प्रयास करता हूं। फिर भी, उम्मीद है कि उत्तर उपयोगी हो सकता है।
rpstw

यह मेरे मामले में एक समान मुद्दा था। 'from ..core.models import CommonInfo' को apps.core.models import CommonInfo से 'बनना पड़ा'
user42488

यह मेरा मुद्दा था, अस्पष्ट था क्योंकि यह 2 अलग-अलग फाइलों में हो रहा था। तुमको, घोंसले के शिकार आयात! डांग यू, 2to3 के समझदार परिवर्तनों की मेरी मूर्खता अस्वीकृति!
9999 वर्ष

13

मुझे अभी भी यही समस्या थी। मैंने ऐप के नाम पर एक नाम स्थान जोड़कर मेरा निश्चित किया है। आशा है किसी को यह मददगार लगे।

apps.py

from django.apps import AppConfig    

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

8

मुझे परीक्षण में मॉडल आयात करने पर यह त्रुटि मिली, अर्थात यह Django परियोजना संरचना दी गई है:

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

फ़ाइल में test_models.pyमैं MyModelइस तरह से आयातित :

from models import MyModel

यदि इसे इस तरह आयात किया जाता है, तो समस्या तय हो गई थी:

from myapp.models import MyModel

उम्मीद है की यह मदद करेगा!

पुनश्च: शायद यह थोड़ा देर हो चुकी है, लेकिन मुझे दूसरों के जवाब नहीं मिले कि इस समस्या को अपने कोड में कैसे हल किया जाए और मैं अपना समाधान साझा करना चाहता हूं।


juliocesar तुम एक विजेता हो। धन्यवाद। यह एक हास्यास्पद त्रुटि थी।
कर्क

2
मुझे यह खोजने की अपेक्षा से अधिक समय लगा। मैं अपनी test.py फ़ाइल में एक सापेक्ष आयात का उपयोग कर रहा था। उपयोग करते समय त्रुटि हुई from .models import MyModelfrom myapp.models import MyModelमुद्दे को तय करने के लिए बदल रहा है ।
monkut

@monkut यहाँ। मुझे आश्चर्य है कि ऐसा क्यों हो रहा है। मैं वैसे तो कस्टम एप्स फोल्डर का इस्तेमाल करता हूं। प्रोजेक्ट रूट में "एप्स", पथ में जोड़ा गया।

4

इस मुद्दे पर चलते रहने के बाद और इस सवाल पर वापस आते रहने के बाद मुझे लगा कि मैं साझा करूंगा कि मेरी समस्या क्या थी।

सब कुछ है कि @Xeberdee सही है तो उसका अनुसरण करें और देखें कि क्या यह समस्या हल करती है, यदि यह मेरा मुद्दा नहीं था:

मेरे Apps.py में यह वही है जो मेरे पास था:

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

और मैंने जो कुछ किया, वह इस तरह से मेरे ऐप नाम के सामने प्रोजेक्ट नाम जोड़ा गया:

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

और इससे मेरी समस्या हल हो गई और मैं makemigrations को चलाने और उसके बाद कमांड को माइग्रेट करने में सक्षम हो गया! सौभाग्य


3

मुझे यह त्रुटि आज Django परीक्षण चलाने की कोशिश कर रही थी क्योंकि मैं from .models import *अपनी एक फ़ाइल में शॉर्टहैंड सिंटैक्स का उपयोग कर रहा था । मुद्दा यह था कि मेरे पास फ़ाइल संरचना थी जैसे:

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

और models/__init__.pyमैं शॉर्टहैंड सिंटैक्स का उपयोग करके अपने मॉडल आयात कर रहा था:

    from .foo import *
    from .bar import *

अपने आवेदन में मैं इस तरह के मॉडल आयात कर रहा था:

    from myapp.models import Foo, Bar

इस कारण Django model doesn't declare an explicit app_labelजब चल रहा है ./manage.py test

समस्या को ठीक करने के लिए, मुझे स्पष्ट रूप से पूर्ण पथ से आयात करना पड़ा models/__init__.py:

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

जिसमें त्रुटि का ख्याल रखा गया।

एच / टी https://medium.com/@michal.bock/fix-weird-exception-when-running-django-tests-f58def71b59a


मेरे लिए भी यही समस्या थी। धन्यवाद!
सैम क्रेमर

3

मेरे मामले में, यह इसलिए हो रहा था क्योंकि मैंने प्रोजेक्ट-स्तरीय urls.py में एक रिश्तेदार मॉड्यूल पथ का उपयोग किया था , INSTALLED_APPSऔरapps.py इसके बजाय प्रोजेक्ट रूट में निहित था। यानी सापेक्ष मॉड्यूल रास्तों + हैक्स की बजाय संपूर्ण मॉड्यूल पथ।

कोई कितना भी मैं में रास्तों के साथ गड़बड़ INSTALLED_APPSऔर apps.pyमेरे एप्लिकेशन में, मैं दोनों नहीं मिल सका runserverऔरpytest तिल उन तीनों परियोजना जड़ में निहित थे काम करने के लिए।

फ़ोल्डर संरचना:

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

निम्नलिखित के साथ, मैं चला सकता हूँ manage.py runserverऔर wsgi के साथ gunicorn कर सकता हूं और portalपरेशानी के बिना ऐप दृश्यों का उपयोग कर सकता हूं , लेकिन ModuleNotFoundError: No module named 'apps'इसके बावजूद pytest त्रुटि करेगाDJANGO_SETTINGS_MODULE सही तरीके से कॉन्फ़िगर किए जाने के ।

config / settings.py:

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

biz_portal / apps / पोर्टल / apps.py:

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

config / urls.py:

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

कॉन्फ़िगरेशन / सेटिंग में एप्लिकेशन संदर्भ बदलना biz_portal.apps.portal.apps.PortalConfigऔर चलने के PortalConfig.nameलिए biz_portal.apps.portalअनुमत pytest (मेरे पास portalअभी तक विचारों के परीक्षण नहीं हैं ) लेकिन runserverइसके साथ त्रुटि होगी

RuntimeError: मॉडल वर्ग apps.portal.models.Business एक स्पष्ट app_label घोषित नहीं करता है और INSTALLED_APPS में एक आवेदन में नहीं है

अंत में मैं apps.portalयह देखने के लिए तैयार हो गया कि क्या अभी भी एक रिश्तेदार पथ का उपयोग कर रहा है, और पाया कि config / urls.py का भी उपयोग करना चाहिए biz_portal.apps.portal.urls


रिश्तेदार पथ के साथ हमलों ......... वही किया। आपकी अंतर्दृष्टि ने मुझे बहुत मदद की
zar3bski

2

मैं इस त्रुटि में भाग गया जब मैंने एक एकल ऐप के लिए माइग्रेशन उत्पन्न करने की कोशिश की, जिसमें एक जीआईटी मर्ज के कारण मौजूदा विकृत माइग्रेशन थे। जैसे

manage.py makemigrations myapp

जब मैंने डिलीट किया तो यह माइग्रेशन है और फिर भाग गया:

manage.py makemigrations

त्रुटि उत्पन्न नहीं हुई और पलायन सफलतापूर्वक उत्पन्न हुआ।


धन्यवाद। पलायन लगातार जारी है।
HashRocketSyntax

2

मेरे पास एक समान मुद्दा था, लेकिन मैं अपने मॉडल वर्ग में मेटा क्लास का उपयोग करके स्पष्ट रूप से app_label निर्दिष्ट करके मेरा हल करने में सक्षम था

class Meta:
    app_label  = 'name_of_my_app'

धन्यवाद बेंजामिन! मेरे Django प्रोजेक्ट में, मैं दस्तावेज़ बनाने के लिए स्फिंक्स का उपयोग कर रहा हूं, और :: ऑटोक्लास निर्देश "app_label" त्रुटि दे रहा था जब तक कि मैंने इसे मॉडल के मेटा क्लास में नहीं जोड़ा, जैसा कि आपने सुझाव दिया था।
स्टेफेन मुसर्रा

मुझे खुशी है कि यह आपके लिए काम किया
बेंजामिन एंडोह

1

मुझे अपने Django रेस्ट फ्रेमवर्क ऐप को DRF 3.6.3 और Django 1.11.1 में अपग्रेड करने की कोशिश करते समय यह त्रुटि मिली ।

इस स्थिति में किसी और के लिए, मुझे GitHub मुद्दे में अपना समाधान मिला , जो DRFUNAUTHENTICATED_USER सेटिंग में सेटिंग को अनसेट करने के लिए था :

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

1

मैं बस इस मुद्दे में भाग गया और पता लगा कि क्या गलत हो रहा था। चूंकि पिछले किसी भी उत्तर ने इस मुद्दे का वर्णन नहीं किया, जैसा कि मेरे साथ हुआ था, हालांकि मैं इसे दूसरों के लिए पोस्ट करूंगा:

  • समस्या python migrate.py startapp myAppमेरे प्रोजेक्ट रूट फ़ोल्डर से उपयोग करने से आई है , फिर myApp को चाइल्ड फ़ोल्डर में ले जाएं mv myApp myFolderWithApps/
  • मैंने myApp.models लिखा और भाग गया python migrate.py makemigrations। सब अच्छे से हो गया।
  • फिर मैंने एक अन्य ऐप के साथ भी ऐसा ही किया जो myApp से मॉडल आयात कर रहा था। Kaboom! मैं इस त्रुटि में भाग गया, जबकि makemigrations प्रदर्शन। ऐसा इसलिए था क्योंकि मुझे myFolderWithApps.myAppअपने ऐप को संदर्भित करने के लिए उपयोग करना था , लेकिन मैं MyApp / apps.py अपडेट करना भूल गया था। इसलिए मैंने अपने दूसरे ऐप में myApp / apps.py, settings / INSTALLED_APPS और अपने इंपोर्ट का रास्ता सही किया।
  • लेकिन तब त्रुटि होती रही: इसका कारण यह था कि मेरे पास माइग्रेन को गलत रास्ते से मॉडल आयात करने की कोशिश कर रहा था। मैंने माइग्रेशन फ़ाइल को ठीक करने की कोशिश की, लेकिन मैं उस बिंदु पर गया जहां डीबी को रीसेट करना और खरोंच से शुरू होने के लिए माइग्रेशन को हटाना आसान था।

तो एक लंबी कहानी को छोटा करने के लिए: - यह समस्या शुरू में सेटिंग्स में और मेरे दूसरे ऐप के आयात पथ में myApp के apps.py में गलत ऐप नाम से आ रही थी। - लेकिन इन तीन स्थानों पर रास्तों को सही करना पर्याप्त नहीं था, क्योंकि गलत ऐप नाम का संदर्भ देते हुए आयात के साथ माइग्रेशन बनाए गए थे। इसलिए, एक ही त्रुटि माइग्रेट करते समय होती रही (माइग्रेशन से इस समय को छोड़कर)।

तो ... अपने पलायन की जाँच करें, और शुभकामनाएँ!


1

मुझे Django rest_framework में API बनाते समय एक समान त्रुटि मिली है।

RuntimeError: मॉडल वर्ग apps.core.models.University एक स्पष्ट> app_label घोषित नहीं करता है और INSTALLED_APPS में एक आवेदन में नहीं है।

luke_aus के उत्तर ने मेरी urls.py को सही करके मेरी मदद की

से

from project.apps.views import SurgeryView

सेवा

from apps.views import SurgeryView

मेरे लिए, मैंने इसे एक प्रवास में छिपा दिया था। निश्चित नहीं है कि यह कैसे हुआ, लेकिन परियोजना का नाम / पथ निश्चित चीजों को हटा देना।
माइकल थॉम्पसन

1

मेरे मामले में मुझे यह त्रुटि मिली जब Django 1.11.11 से Django 2.2 में कोड पोर्ट कर रहा था। मैं एक कस्टम FileSystemStorage व्युत्पन्न वर्ग को परिभाषित कर रहा था। Django 1.11.11 में मैं निम्नलिखित मॉडल में शामिल हो रहा था:

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

और बाद में फ़ाइल में मेरे पास वर्ग परिभाषा थी:

class MyFileStorage(FileSystemStorage):

हालाँकि, Django 2.2 में FileSystemStorageआयात करते समय मुझे स्पष्ट रूप से संदर्भ वर्ग की आवश्यकता है :

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

और आवाज!, त्रुटि गायब हो जाता है।

ध्यान दें, कि हर कोई Django सर्वर द्वारा प्रायोजित त्रुटि संदेश के अंतिम भाग की रिपोर्ट कर रहा है। हालाँकि, यदि आप ऊपर स्क्रॉल करते हैं, तो आपको उस त्रुटि के मध्य में कारण मिल जाएगा-बांस।


1

मेरे मामले में मैं एक फिक्स ढूंढने में सक्षम था और हर किसी के कोड को देखकर यह एक ही मुद्दा हो सकता है .. मुझे बस सेटिंग में स्थापित ऐप्स की सूची में 'django.contrib.sites' जोड़ना था। फ़ाइल।

आशा है कि यह किसी की मदद करता है। कोडिंग समुदाय के लिए यह मेरा पहला योगदान है


1

TL; DR: एक रिक्त __init__.py जोड़कर मेरे लिए समस्या ठीक हो गई।

मुझे PyCharm में यह त्रुटि मिली और मुझे एहसास हुआ कि मेरी सेटिंग्स फ़ाइल आयात नहीं की जा रही है। मुझे यह बताने में कोई स्पष्ट त्रुटि नहीं हुई, लेकिन जब मैंने सेटिंग्स कोड में कुछ बकवास कोड डाला, तो यह त्रुटि का कारण नहीं बना।

मेरे पास एक local_settings फ़ोल्डर के अंदर settings.py था । हालाँकि, मैं आयात करने की अनुमति देने के लिए उसी फ़ोल्डर में __init__.py को शामिल करने के लिए धूमिल करूँगा । एक बार मैंने इसे जोड़ा, त्रुटि दूर हो गई।


1

यदि आपको सभी कॉन्फ़िगरेशन सही मिले हैं, तो यह सिर्फ एक आयात गड़बड़ हो सकता है। आप किस तरह से आपत्तिजनक मॉडल का आयात कर रहे हैं, इस पर नज़र रखें।

निम्नलिखित काम नहीं करेगा from .models import Business। इसके बजाय पूर्ण आयात पथ का उपयोग करें:from myapp.models import Business


1

यदि अन्य सभी विफल रहता है, और यदि आप PyCharm "पायथन कंसोल" (या "Django कंसोल") में आयात करने का प्रयास करते समय इस त्रुटि को देख रहे हैं:

कंसोल को पुनरारंभ करने का प्रयास करें।

यह बहुत शर्मनाक है, लेकिन मुझे यह महसूस करने में कुछ समय लगा कि मैं ऐसा करना भूल गया था।

यहाँ क्या हुआ:

एक नया ऐप जोड़ा, फिर एक न्यूनतम मॉडल जोड़ा, फिर पायथन / Django कंसोल (PyCharm समर्थक 2019.2) में मॉडल को आयात करने की कोशिश की। इसने doesn't declare an explicit app_labelत्रुटि पैदा की , क्योंकि मैंने नया ऐप नहीं जोड़ा था INSTALLED_APPS। इसलिए, मैंने ऐप को इसमें जोड़ा INSTALLED_APPS, फिर से आयात करने की कोशिश की, लेकिन फिर भी वही त्रुटि हुई।

यहां आया, अन्य सभी उत्तर पढ़ें, लेकिन कुछ भी उचित नहीं लगा।

अंत में इसने मुझे मारा कि मैंने नए ऐप को जोड़ने के बाद अभी तक पायथन कंसोल को पुनः आरंभ नहीं किया है INSTALLED_APPS

नोट: PyCharm पायथन कंसोल को पुनः आरंभ करने में विफल, एक नई वस्तु को एक मॉड्यूल में जोड़ने के बाद, बहुत भ्रमित करने का एक शानदार तरीका है ImportError: Cannot import name ...


इस उत्तर के लिए धन्यवाद, मैं अपनी .envफ़ाइल स्रोत करना भूल गया और मैं एक अप्रचलित कॉन्फ़िगरेशन के साथ काम करने के लिए अपनी पूरी कोशिश कर रहा था: /
sodimel

1

ओ ... एम ... जी मुझे भी यह त्रुटि मिल रही थी और मैंने इस पर लगभग 2 दिन बिताए और अब मैं आखिरकार इसे हल करने में कामयाब रहा। ईमानदारी से ... त्रुटि का कोई लेना-देना नहीं था कि समस्या क्या थी। मेरे मामले में यह वाक्य रचना का एक साधारण मामला था। मैं एक अजगर मॉड्यूल स्टैंडअलोन को चलाने की कोशिश कर रहा था जो एक django संदर्भ में कुछ django मॉडल का उपयोग करता था, लेकिन मॉड्यूल खुद एक django मॉडल नहीं था। लेकिन मैं कक्षा को गलत घोषित कर रहा था

होने के बजाय

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

मैं कर रहा था

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

जो स्पष्ट रूप से गलत है। यह संदेश इतना भ्रामक है कि मैं खुद की मदद नहीं कर सका, लेकिन मुझे लगता है कि यह कॉन्फ़िगरेशन के साथ कुछ समस्या थी या सिर्फ गलत तरीके से django का उपयोग करने के बाद से मैं इसके लिए बहुत नया हूं।

मैं इसे किसी नौसिखिया के लिए यहाँ साझा करूँगा क्योंकि मैं उसी नीरसता से गुज़र रहा हूँ जो उम्मीद कर सकता है कि उनका मुद्दा सुलझ जाए।


0

SECRET_KEYवातावरण चर से खींचने के लिए स्थानांतरित करने के बाद मुझे यह त्रुटि मिली और अनुप्रयोग चलाते समय इसे सेट करना भूल गया। अगर आपके अंदर भी कुछ ऐसा हैsettings.py

SECRET_KEY = os.getenv('SECRET_KEY')

फिर सुनिश्चित करें कि आप वास्तव में पर्यावरण चर सेट कर रहे हैं।


0

ज्यादातर शायद आपके पास निर्भर आयात है

मेरे मामले में मैंने अपने मॉडल में एक पैरामीटर के रूप में एक धारावाहिक वर्ग का उपयोग किया, और धारावाहिक वर्ग इस मॉडल का उपयोग कर रहा था: serializer_class = AccountSerializer

from ..api.serializers import AccountSerializer

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

और "धारावाहिक" फाइल में:

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

मुझे आज यह त्रुटि मिली और गुगली करने के बाद यहाँ समाप्त हुआ। मौजूदा उत्तरों में से कोई भी मेरी स्थिति के लिए प्रासंगिक नहीं है। केवल एक चीज जो मुझे करने की ज़रूरत थी वह थी मेरे से एक मॉडल आयात करना__init__.py एक ऐप के शीर्ष स्तर में फ़ाइल । मुझे मॉडल का उपयोग करके अपने आयात को कार्यों में स्थानांतरित करना पड़ा।

Django के लिए कुछ अजीब कोड है जो इतने अलग-अलग परिदृश्यों में इस तरह विफल हो सकते हैं लगता है!


0

यह त्रुटि मुझे आज भी मिली। संदेश ने INSTALLED_APPS में मेरे ऐप्स के कुछ विशिष्ट ऐप का संदर्भ दिया । लेकिन वास्तव में इसका इस विशिष्ट ऐप से कोई लेना-देना नहीं था। मैंने एक नए वर्चुअल एनवायरनमेंट का उपयोग किया और कुछ लाइब्रेरियों को स्थापित करना भूल गया, जिसका उपयोग मैंने इस प्रोजेक्ट में किया। अतिरिक्त लाइब्रेरी स्थापित करने के बाद, इसने काम किया।


0

PyCharm उपयोगकर्ताओं के लिए: मुझे "स्वच्छ" प्रोजेक्ट संरचना का उपयोग करने में त्रुटि हुई।

था:

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

अभी:

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

यहां बहुत सारे अच्छे समाधान हैं, लेकिन मुझे लगता है, सबसे पहले, आपको DJANGO_SETTINGS_MODULEचर और सेट करने से पहले अपने प्रोजेक्ट संरचना को साफ करना चाहिए या PyCharm Django सेटिंग्स को ट्यून करना चाहिए ।

आशा है कि यह किसी की मदद करेगा। चीयर्स।


-1

मुद्दा यह है कि:

  1. आपने अपने मॉडल फ़ाइल में संशोधन किए हैं, लेकिन उन्हें डीबी में अभी तक जोड़ा नहीं गया है, लेकिन आप पायथन मैनेजमेन्डर ऑब्जर्वर को चलाने की कोशिश कर रहे हैं।

  2. पायथन प्रबंधित करें Oracle पहुंच बनाएं

  3. Python manage.py माइग्रेट करता है

  4. अब पायथन मैनेजमेन्ट चलाने वाला और सब ठीक होना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.