জ্যাঙ্গো মডেল "সুস্পষ্ট অ্যাপ্লিকেশন_প্রেমিক ঘোষণা করে না"


119

আমি বুদ্ধি শেষে। কয়েক ঘন্টা সমস্যার সমাধানের পরে, সম্ভবত আরও, আমি ভাবলাম যে আমি শেষ পর্যন্ত ব্যবসায়ে আছি, তবে তখন আমি পেয়েছি:

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

ওয়েবে এটিতে খুব ছোট তথ্য রয়েছে এবং এর কোনও সমাধানই আমার সমস্যার সমাধান করতে পারেনি। যে কোনও পরামর্শ প্রশংসিত হবে।

আমি পাইথন 3.4 এবং জ্যাঙ্গো 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',
]

এবং আমার অ্যাপস.পাই ফাইলগুলি দেখতে দেখতে এটি:

from django.apps import AppConfig


class DeletenoteConfig(AppConfig):
    name = 'DeleteNote'

এবং

from django.apps import AppConfig


class LibrarysyncConfig(AppConfig):
    name = 'LibrarySync'

2
INSTALLED_APPS এ আপনার jjoo.contrib.contenttyype নেই।
রিমকো জারলিচ

2
তারপরে অন্য সম্ভাব্য জিনিসটি হ'ল এটির মডেলগুলি লোড হওয়ার আগে আপনি এটিকে আমদানি করেছিলেন, এমন কোনও অ্যাপ্লিকেশন যা INSTALLED_APPS ব্যবহার করে কন্টেন্ট টাইপের আগে তালিকাভুক্ত রয়েছে?
রিমকো জারলিচ

1
এটি অস্বাভাবিক, আপনার নিজস্ব কোনও প্রকল্প বা অ্যাপ নেই?
রিমকো জারলিচ

1
মডেল.পিসিযুক্ত সমস্ত কিছু INSTALLED_APPS এ থাকা উচিত; এবং যদি তাদের মধ্যে কন্টেন্ট টাইপ ব্যবহার করে (জেনেরিক বিদেশী কী বলে, বলুন) তবে এটি তালিকার বিষয়বস্তুতে থাকা দরকার।
রিমকো গ্রিলিচ

1
হতাশাজনক, এটি খুব ছোট কিছু হতে পারে তবে এখান থেকে বলা শক্ত। আপনি কি আপনার যেকোন স্টাফটি সেটিংস.পি বা তে আমদানি করেন?
রিমকো গ্রিলিচ

উত্তর:


91

আপনি কি নিজের অ্যাপ্লিকেশনটির নামটি সেটিংস ফাইলটিতে রেখে দিচ্ছেন? myAppNameConfigডিফল্টরূপে apps.py এ উত্পন্ন ক্লাস হয় .manage.py createapp 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',
]

এইভাবে, সেটিংস ফাইলটি আপনার অ্যাপ্লিকেশনটিতে কী কল করতে চান তা সন্ধান করে। অ্যাপস.পি ফাইলে এটি পরে কীভাবে দেখায় তা নীচের কোডটি যুক্ত করে পরিবর্তন করতে পারেন

myAppName / apps.py

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

ঠিক আছে সুতরাং উদাহরণটি দিয়ে এটি আমার কাছে প্রচুর পরিমাণে উপলব্ধি করে এবং আমি সিনট্যাক্স সম্পর্কে আমার বোঝার উপর ভিত্তি করে পরিবর্তনগুলি এখনই বাস্তবায়িত করেছি, তবে আমি এখনও ঠিক একই ত্রুটিটি 100% হিট করছি। আমি আমার পোস্টটি বিস্তারিতভাবে আপডেট করেছি।
স্লববক্স

2
এর জন্য তাদের সহায়তার জন্য @ এক্সবারডি এবং @ রেমকো জারলিচকে ধন্যবাদ। শেষ অবধি, আমার সমাধানটি ছিল আমার অ্যাপ্লিকেশনগুলি django.contrib অ্যাপের নীচে লোড করা এবং আমার সেটিংস.পিতে আমার এন্ট্রিটি import django django.setup()নীচে INSTALLED_APPSপ্রবেশ করানো।
স্লববক্স

2
কৌতূহলের বাইরে - কেন সেটিংস ফাইলে জ্যাঙ্গো django.setup () আমদানি করবেন? এছাড়াও, আপনার অ্যাপ্লিকেশনগুলি ইনস্টল হওয়া অ্যাপ্লিকেশন তালিকায় প্রথম হলেও এমনকি লোড করা উচিত।
Xeberdee

1
এই এবং তার প্রশ্নের মধ্যে তিনি যা লিখেছিলেন তার মধ্যে পার্থক্য কী?
ম্যাট ডি

1
বিন্দুটি ছিল অ্যাপটি কীভাবে কনফিগারেশনের ফাইলের শ্রেণীর নাম ক্ষেত্রের মধ্যে INSTALLED_APPS সেটিংসে আবিষ্কার হয়। পোস্টটি সম্পাদনা করা হয়েছে।
Xeberdee

35

আমি একই ত্রুটি পেয়েছি এবং এই সমস্যাটি কীভাবে খুঁজে বের করতে হয় তা আমি জানি না। ডিজেঙ্গো থেকে পরিচালিত.পি-এর মতো একই নির্দেশিকায় আমার একটি ডি.পি.পি আছে তা লক্ষ্য করতে আমার অনেক ঘন্টা লেগেছিল।

আগে:

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

পরে:

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

এটি বেশ বিভ্রান্ত যে আপনি এটি "একটি সুস্পষ্ট অ্যাপ্লিকেশন_বিবেলের ঘোষণা দেয় না" ত্রুটি পান get তবে এই init ফাইলটি মুছে ফেলা আমার সমস্যার সমাধান করে।


2
পবিত্র ধূমপান, আমি এতক্ষণ ধরে এটি দেখছিলাম - দুর্দান্ত ধরা!
ব্যবহারকারী 3167654

আমি পাইডোক ব্যবহার করে ডকুমেন্টেশন তৈরি করার চেষ্টা করছি এবং আমার অ্যাপটি init.py ছাড়াই লুকানো রয়েছে
সার্জ স্মাইক

20

পাইচার্মের সাথে পরীক্ষা চালানোর সময় আমার ঠিক একই ত্রুটি হয়েছিল। আমি স্পষ্টভাবে DJANGO_SETTINGS_MODULEপরিবেশ পরিবর্তনশীল সেট করে এটি ঠিক করেছি । আপনি যদি পাইচার্ম ব্যবহার করে থাকেন তবে সম্পাদনা করুন কনফিগারেশন বাটনটি চাপুন এবং পরিবেশের ভেরিয়েবলগুলি চয়ন করুন ।

ভেরিয়েবলটি সেট করুন your_project_name.settingsএবং এটি জিনিস ঠিক করা উচিত।

দেখে মনে হচ্ছে এই ত্রুটিটি ঘটেছে, কারণ পাইচার্ম তার নিজস্ব দিয়ে পরীক্ষা চালায় manage.py


1
পাইচার্ম টেস্টগুলি চালাতে এই সমস্যাটি ছিল যদিও পাইচার্মের মাধ্যমে সার্ভার চালানোর জন্য আমার সেটিংস যুক্ত করার প্রয়োজন ছিল না। আমার জন্য যদি পরীক্ষার সমাধানের জন্য কনফিগারেশনে ম্যানুয়ালি DJANGO_SETTINGS_MODULE যুক্ত করুন।
ফোবিবি

1
এছাড়াও, কনফিগারেশন সম্পাদনা করার সময়, টেমপ্লেটগুলি সম্পাদনা করার জন্য এটি দরকারী।
ইয়াংভে হুইসেট

1
সেটিংস -> ভাষা ও ফ্রেমওয়ার্ক -> জ্যাঙ্গো -> সেটিংসের অধীনে একটি মান যুক্ত করা হলে DJANGO_SETTINGS_MODULEপ্রতিটি নতুন জ্যাঙ্গো এবং জ্যাঙ্গো পরীক্ষা চালনার কনফিগারেশনের জন্য স্বয়ংক্রিয়ভাবে সেট হয়ে যাবে ।
টোবিয়াস আর্নস্ট

এফওয়াইআই, আমি ঠিক এই সমাধানটি দ্বারা নির্দেশিত হিসাবে কাজ করেছি এবং এটি প্রথমবার কার্যকর হয়নি। দেখা যাচ্ছে, DJANGO_SETTINGS_MODULEআমি Applyতখন ক্লিক করার পরে পাইচার্ম প্রথমবার সংরক্ষণ করতে পারেনি OK। আমি এটি দ্বিতীয়বার করেছিলাম এবং এখন এটি কার্যকর হয়। কিছুটা পাইচর্ম অদ্ভুততার মতো মনে হচ্ছে।
মাইকি

আমাকে নিশ্চিত করতে হয়েছিল যে আমি আমদানি সঠিকভাবে ঘোষণা করেছি: থেকে <app>.<module> import <class>- পাইচার্ম অটো আমদানি অনুপস্থিত ছিল <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()

আমার ক্ষেত্রে, আমাকে from fields import xfrom .fields import x
ডেইগোরোকব

13

পাইথন 3 ব্যবহার করার মতো নুবি হিসাবে , আমি দেখতে পাই এটি জ্যাঙ্গো ত্রুটির পরিবর্তে আমদানি ত্রুটি হতে পারে

ভুল:

from someModule import someClass

ডানে:

from .someModule import someClass

কিছুদিন আগে এটি ঘটেছিল তবে আমি সত্যিই এটি পুনরুত্পাদন করতে পারি না ... আমি মনে করি কেবল জাজানোতে নতুন লোকেরা এর মুখোমুখি হতে পারে I এখানে আমার মনে আছে:

অ্যাডমিন.পিতে একটি মডেল নিবন্ধ করার চেষ্টা করুন:

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
স্ট্যাকওভারফ্লোতে স্বাগতম! আপনার উত্তরটি ওপি-র প্রশ্নের সাথে সম্পর্কিত নয় বলে উল্লেখ করতে বাধ্য হচ্ছি। একটি নুব হিসাবে আপনার সমাধানের যথাযথতা যাচাই না করে সাবধানতার সাথে সাবধান হওয়া উচিত। তবে দয়া করে ফিরে আসুন, এবং কংক্রিটের উত্তর পোস্ট করুন post ধন্যবাদ!
এডে

1
আমি স্ট্যাকের উপর আরও মন্তব্যগুলি আপনার জিয়ন ফিলের মতো হতে চাই। প্রায়শই নতুন ব্যবহারকারীদের তাড়াহুড়ো করে রেবিড কমেন্টাররা অসন্তুষ্ট যে তারা প্রথম দিন স্ট্যাক বিশেষজ্ঞ নয়।
স্লববক্স

1
আপনি ঠিকই বলেছেন, @ নেভেডফ্লো, আমার প্রথম উত্তরটি সত্যিই সম্পর্কিত নয়, আমি উত্তরটি পরিষ্কার করার চেষ্টা করছি ny তবে, আশা করি উত্তরটি কার্যকর হতে পারে।
rpstw

এটা আমার ক্ষেত্রেও একই বিষয় ছিল। '..core.models থেকে আমদানি CommonInfo' পরিণত ছিল 'apps.core.models থেকে 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

পরীক্ষাগুলিতে মডেল আমদানি করার ক্ষেত্রে আমি এই ত্রুটি পেয়েছি, যেমন এই জ্যাঙ্গো প্রকল্প কাঠামো দেওয়া:

|-- 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

আশাকরি এটা সাহায্য করবে!

পিএস: সম্ভবত এটি কিছুটা দেরি হয়ে গেছে তবে আমার কোডটিতে এই সমস্যাটি কীভাবে সমাধান করা যায় তার উত্তর আমি অন্যদের কাছে পাইনি এবং আমি আমার সমাধানটি ভাগ করতে চাই।


জুলিওসার আপনি চ্যাম্প ধন্যবাদ। এটি একটি হাস্যকর ত্রুটি ছিল।
কির্ক

2
এটি খুঁজে পাওয়ার জন্য আমাকে প্রত্যাশার চেয়ে বেশি সময় নিয়েছে। আমি আমার টেস্ট.পি ফাইলে আপেক্ষিক আমদানি ব্যবহার করছিলাম। ব্যবহার করার সময় ত্রুটি পেয়েছি from .models import MyModelfrom myapp.models import MyModelইস্যু স্থির করতে পরিবর্তন করা হচ্ছে ।
monkut

@ মোমনকুট এখানে একই। আমি ভাবছি কেন এমন হচ্ছে? আমি কাস্টম অ্যাপস ফোল্ডারটি ব্যবহার করি। প্রকল্পের মূলটিতে "/ অ্যাপ্লিকেশন", পথে যোগ করা হয়েছে।

4

এই ইস্যুতে চালিয়ে যাওয়ার পরে এবং এই প্রশ্নে ফিরে আসা চালিয়ে যাওয়ার পরে আমি ভেবেছিলাম আমার সমস্যাটি কী তা ভাগ করে নেব।

@ এক্সবার্ডি যা কিছু সঠিক তা তাই অনুসরণ করুন এবং দেখুন যে এটি সমস্যার সমাধান করে, যদি না হয় এটি আমার সমস্যা ছিল:

আমার অ্যাপ্লিকেশনগুলিতে এইটি আমার ছিল:

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

এবং আমি যা করেছি তা হ'ল আমি আমার অ্যাপ্লিকেশন নামের সামনে এই প্রকল্পের নাম যুক্ত করেছি:

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

এবং এটি আমার সমস্যার সমাধান করে এবং আমি পরে মাইগ্রেশন এবং চালনা কমান্ড চালাতে সক্ষম হয়েছি! শুভকামনা


3

জ্যাঙ্গো পরীক্ষা চালানোর চেষ্টা করার সময় আমার আজ এই ত্রুটি হয়েছিল কারণ আমি 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এবং ডাব্লুএসজি দিয়ে গ্যানিকর্ন করতে এবং portalসমস্যা ছাড়াই অ্যাপের ভিউগুলি ব্যবহার করতে পারি , তবে পাইস্টেস্ট সঠিকভাবে কনফিগার করা ModuleNotFoundError: No module named 'apps'সত্ত্বেও ত্রুটি ঘটবে DJANGO_SETTINGS_MODULE

কনফিগ / settings.py:

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

biz_portal / অ্যাপস / পোর্টাল / apps.py:

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

কনফিগ / urls.py:

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

অ্যাপ্লিকেশন রেফারেন্স পরিবর্তন কনফিগ / settings.py করতে biz_portal.apps.portal.apps.PortalConfigএবং PortalConfig.nameকরতে biz_portal.apps.portalচালু করতে অনুমতি দেওয়া pytest (আমি জন্য পরীক্ষা হবে না portalএখনো মতামত) কিন্তু runserverত্রুটি হবে

রানটাইমআরার: মডেল ক্লাস অ্যাপস.পোর্টাল.মোডেলস.ব্যসনেস একটি সুস্পষ্ট অ্যাপ_লাবেল ঘোষণা করে না এবং INSTALLED_APPS এ কোনও অ্যাপ্লিকেশনে নেই

অবশেষে আমি apps.portalএখনও কোনও আপেক্ষিক পথটি কী ব্যবহার করছি তা দেখার জন্য গ্রেপ্তার হয়েছি এবং কনফিগারেশন / urls.py ব্যবহার করা উচিত biz_portal.apps.portal.urls


আপেক্ষিক পথ সহ হ্যাকস ......... একই কাজ করেছিল। আপনার অন্তর্দৃষ্টি আমাকে অনেক সাহায্য করেছে
zar3bski

2

আমি এই ত্রুটিতে ছুঁড়েছি যখন আমি কোনও একক অ্যাপ্লিকেশনটির জন্য মাইগ্রেশন উত্পন্ন করার চেষ্টা করেছি যা গিট সংশ্লেষের কারণে বিদ্যমান বিকৃত মাইগ্রেশন ছিল। যেমন

manage.py makemigrations myapp

আমি যখন মুছে ফেলি এটি মাইগ্রেশন এবং তারপরে দৌড়ে:

manage.py makemigrations

ত্রুটিটি ঘটেনি এবং মাইগ্রেশনগুলি সফলভাবে উত্পন্ন হয়েছিল।


ধন্যবাদ. অভিবাসীরা হতাশ হতে থাকে।
হ্যাশরকেটসিন্ট্যাক্স 11'19

2

আমারও একই সমস্যা ছিল, তবে আমি আমার মডেলগুলির ক্লাসে মেটা ক্লাস ব্যবহার করে অ্যাপ্লিকেশনটি স্পষ্টভাবে উল্লেখ করে খনি সমাধান করতে সক্ষম হয়েছি

class Meta:
    app_label  = 'name_of_my_app'

ধন্যবাদ বেনিয়ামিন! আমার জ্যাঙ্গো প্রকল্পে, আমি ডকুমেন্টেশন উত্পন্ন করতে স্পিনিক্স ব্যবহার করছি এবং আপনার অটলক্লাস নির্দেশিকাটি আপনার পরামর্শ অনুযায়ী মডেলটির মেটা শ্রেণিতে যোগ না করা পর্যন্ত "অ্যাপ্লিকেশন" ত্রুটি দিচ্ছিল।
স্টিফান মুসারা

এটি আপনার জন্য কাজ করে আনন্দিত
বেনজমিন অন্ধো

1

আমার জ্যাঙ্গো রেস্ট ফ্রেমওয়ার্ক অ্যাপ্লিকেশনটি ডিআরএফ 3.6.3 এবং জ্যাঙ্গো 1.11.1 এ আপগ্রেড করার চেষ্টা করার সময় আমি এই ত্রুটিটি পেয়েছি ।

এই পরিস্থিতিতে অন্য যে কোনও ব্যক্তির জন্য, আমি একটি গিটহাব ইস্যুতে আমার সমাধানটি পেয়েছি , যা ডিআরএফ সেটিংসেUNAUTHENTICATED_USER সেটিংসটি আনসেট করা ছিল :

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

1

আমি কেবল এই ইস্যুতে দৌড়েছি এবং বুঝতে পেরেছি যে কী ভুল হচ্ছে। যেহেতু পূর্ববর্তী কোনও উত্তরের বিষয়টি আমার কাছে যেমন ঘটেছিল তেমন বর্ণনা দেয় নি, যদিও আমি অন্যদের জন্য এটি পোস্ট করতাম:

  • ইস্যু ব্যবহার থেকে এসে python migrate.py startapp myAppআমার প্রকল্প রুট ফোল্ডার থেকে তারপর, সঙ্গে একটি শিশু ফোল্ডারে myApp সরাতে mv myApp myFolderWithApps/
  • আমি মাই অ্যাপ.মোডেল লিখে দৌড়েছি python migrate.py makemigrations। সব কিছু ভালো গেছে.
  • তারপরে আমি আমার অ্যাপ থেকে মডেলগুলি আমদানি করে এমন একটি অন্য অ্যাপ্লিকেশনের সাথেও একই কাজ করেছি। Kaboom! আমি এই ত্রুটির মধ্যে দৌড়েছি, মেকিগ্রেশনগুলি সম্পাদন করার সময়। কারণ myFolderWithApps.myAppআমার অ্যাপ্লিকেশনটি রেফারেন্স করতে আমাকে ব্যবহার করতে হয়েছিল তবে আমি মাই অ্যাপ / অ্যাপস.পি আপডেট করতে ভুলে গিয়েছিলাম। সুতরাং আমি আমার অ্যাপ্লিকেশন / অ্যাপস.পি, সেটিংস / ইনস্টললডি_এপিপিএস এবং আমার দ্বিতীয় অ্যাপ্লিকেশনটিতে আমার আমদানির পথ সংশোধন করেছি।
  • তবে ত্রুটিটি ঘটতে থাকল: কারণটি হ'ল মাইগ্রেশনগুলি আমার অ্যাপ থেকে মডেলগুলি ভুল পথ দিয়ে আমদানির চেষ্টা করছিল। আমি মাইগ্রেশন ফাইলটি সংশোধন করার চেষ্টা করেছি, তবে আমি সেই স্থানে গিয়েছিলাম যেখানে স্ক্র্যাচ থেকে শুরু করার জন্য ডিবি পুনরায় সেট করা এবং মাইগ্রেশনগুলি মুছে ফেলা সহজ।

সুতরাং একটি দীর্ঘ গল্প সংক্ষিপ্ত করতে: - প্রথমদিকে সমস্যাটি আমার অ্যাপের অ্যাপ্লিকেশন, অ্যাপ্লিকেশনগুলিতে, সেটিংসে এবং আমার দ্বিতীয় অ্যাপ্লিকেশনটির আমদানির পথে ভুল অ্যাপের নাম থেকে আসছিল। - তবে এই তিনটি স্থানে পাথগুলি সংশোধন করার পক্ষে এটি যথেষ্ট ছিল না, কারণ অভিযুক্তদের ভুল অ্যাপের নাম উল্লেখ করে আমদানি তৈরি করা হয়েছিল। সুতরাং, স্থানান্তর করার সময় একই ত্রুটি ঘটতে থাকবে (মাইগ্রেশন থেকে এই সময় ব্যতীত)।

সুতরাং ... আপনার স্থানান্তরগুলি পরীক্ষা করুন, এবং শুভকামনা!


1

জ্যাঙ্গো রেস্ট_ফ্রেমে ওয়ার্কে একটি এপিআই তৈরি করার সময় আমি একই ধরণের ত্রুটি পেয়েছি।

রানটাইমঅরআর: মডেল শ্রেণির অ্যাপসকোরি.মোডালস Uঅনৈচিত্র্য একটি সুস্পষ্ট> অ্যাপ_লবেল ঘোষণা করে না এবং INSTALLED_APPS এ কোনও অ্যাপ্লিকেশনে নেই।

luke_aus এর উত্তর আমার url.py সংশোধন করে আমাকে সাহায্য করেছে

থেকে

from project.apps.views import SurgeryView

প্রতি

from apps.views import SurgeryView

আমার জন্য, আমি এটি একটি মাইগ্রেশনে লুকিয়ে রেখেছিলাম। কীভাবে হয়েছিল তা নিশ্চিত নয়, তবে প্রকল্পের নাম / পথের নির্দিষ্ট জিনিসগুলি সরিয়ে ফেলা হচ্ছে।
মাইকেল থম্পসন

1

আমার ক্ষেত্রে জাঙ্গো 1.11.11 থেকে জাজানো 2.2-তে কোড পোর্ট করার সময় আমি এই ত্রুটিটি পেয়েছি। আমি একটি কাস্টম ফাইল সিস্টেমস্টোরাইজ প্রাপ্ত ক্লাসটি সংজ্ঞায়িত করছিলাম। জ্যাঙ্গো ১.১১.১১ এ আমি মডেল.পাইতে নিম্নলিখিত রেখাটি রেখেছিলাম:

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

এবং পরে ফাইলটিতে আমার ক্লাস সংজ্ঞা ছিল:

class MyFileStorage(FileSystemStorage):

তবে, জাজানো ২.২ এ FileSystemStorageআমদানি করার সময় আমার স্পষ্টভাবে রেফারেন্স বর্গ প্রয়োজন :

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

এবং voilà! ত্রুটি dissapears।

দ্রষ্টব্য, প্রত্যেকে জ্যাঙ্গো সার্ভার দ্বারা বিভক্ত ত্রুটি বার্তার শেষ অংশটি প্রতিবেদন করছে। তবে আপনি যদি স্ক্রোল করে দেখেন তবে ত্রুটিটির মাঝখানে কারণটি খুঁজে পাবেন ম্যাম্বো-জাম্বো।


1

আমার ক্ষেত্রে আমি একটি সমাধান খুঁজে পেতে সক্ষম হয়েছি এবং প্রত্যেকের কোডটি দেখে এটি একই সমস্যা হতে পারে .. আমি কেবল 'django.contrib.sites' কে সেটিংস.পি-তে ইনস্টল থাকা অ্যাপ্লিকেশনগুলির তালিকায় যুক্ত করতে হয়েছিল py ফাইল।

আশা করি এটি কাউকে সাহায্য করবে কোডিং সম্প্রদায়ের জন্য এটি আমার প্রথম অবদান


1

টিএল; ডিআর: একটি ফাঁকা __init__.py যুক্ত করা আমার জন্য সমস্যাটি স্থির করেছে।

পাইকার্মে আমি এই ত্রুটি পেয়েছি এবং বুঝতে পেরেছি যে আমার সেটিংস ফাইলটি আমদানি করা হচ্ছে না। আমাকে এটি বলার ক্ষেত্রে কোনও সুস্পষ্ট ত্রুটি ছিল না, তবে আমি যখন সেটিংস.পাই-তে কিছু বাজে কোড রাখি তখন এটি ত্রুটির কারণ হয় নি।

আমার কাছে তা থাকত settings.py একটি ভিতরে local_settings ফোল্ডার। তবে, আমি একই ফোল্ডারে আমদানি করার অনুমতি দেওয়ার জন্য একটি __init__.py অন্তর্ভুক্ত করতে ফোগোটেন । একবার এটি যুক্ত করলে ত্রুটিটি চলে যায়।


1

আপনি যদি সমস্ত কনফিগারেশন সঠিকভাবে পেয়ে থাকেন তবে এটি কেবল একটি আমদানি বিশৃঙ্খলা হতে পারে। আপনি কীভাবে আপত্তিজনক মডেলটি আমদানি করছেন সেদিকে নজর রাখুন।

নিম্নলিখিতগুলি কাজ করবে না from .models import Business। পরিবর্তে সম্পূর্ণ আমদানি পথ ব্যবহার করুন:from myapp.models import Business


1

যদি সমস্ত কিছু ব্যর্থ হয় এবং আপনি যদি পাইকার্ম "পাইথন কনসোল" (বা "জাজানো কনসোল") আমদানির চেষ্টা করার সময় এই ত্রুটিটি দেখছেন:

কনসোলটি পুনরায় চালু করার চেষ্টা করুন।

এটি বেশ প্রশংসনীয়, তবে আমি বুঝতে পেরেছিলাম যে আমি এটি করতে ভুলে গিয়েছি before

এখানে যা ঘটেছিল তা এখানে:

একটি নতুন অ্যাপ্লিকেশন যুক্ত করা হয়েছে, তারপরে একটি নূন্যতম মডেল যুক্ত করেছেন, তারপরে পাইথন / জ্যাঙ্গো কনসোলে মডেলটি আমদানির চেষ্টা করলেন (পাইচার্ম প্রো 2019.2)। এটি doesn't declare an explicit app_labelত্রুটিটি উত্থাপন করেছে , কারণ আমি নতুন অ্যাপটিতে যুক্ত করেছিলাম না INSTALLED_APPS। সুতরাং, আমি অ্যাপটিতে যুক্ত করেছি INSTALLED_APPS, আবার আমদানির চেষ্টা করেছি, তবে এখনও একই ত্রুটি পেয়েছি।

এখানে এসেছেন, অন্যান্য সমস্ত উত্তর পড়ুন, তবে কিছুই মানায় না।

অবশেষে এটি আমাকে আঘাত করেছে যে আমি নতুন অ্যাপটিতে যুক্ত করার পরে পাইথন কনসোলটি পুনরায় আরম্ভ করি নি INSTALLED_APPS

দ্রষ্টব্য: পাইচর্ম পাইথন কনসোলটি পুনরায় আরম্ভ করতে ব্যর্থ হওয়া, মডিউলটিতে একটি নতুন অবজেক্ট যুক্ত করার পরেও খুব বিভ্রান্ত হওয়ার এক দুর্দান্ত উপায় ImportError: Cannot import name ...


এই উত্তরের জন্য ধন্যবাদ, আমি আমার উত্সটি ভুলে গেছি .env ফাইল এবং একটি অপ্রচলিত কনফিগারেশন দিয়ে জিনিসগুলিকে কাজ করার জন্য আমি যথাসাধ্য চেষ্টা করছিলাম: /
সোডিমেল

1

ও ... এম ... জি আমিও এই ত্রুটিটি পেয়েছিলাম এবং আমি এটিতে প্রায় 2 দিন অতিবাহিত করেছি এবং শেষ পর্যন্ত আমি এটি সমাধান করতে সক্ষম হয়েছি। সত্যিই ... সমস্যাটি যা ছিল তার সাথে ত্রুটির কোনও সম্পর্ক ছিল না। আমার ক্ষেত্রে এটি সিনট্যাক্সের একটি সাধারণ বিষয় ছিল। আমি একটি অজগর মডিউল স্ট্যান্ডেলোন চালানোর চেষ্টা করছিলাম যা জ্যাঙ্গো প্রসঙ্গে কিছু জ্যাঙ্গো মডেল ব্যবহার করেছিল, তবে মডিউলটি নিজেই জ্যাঙ্গো মডেল ছিল না। তবে আমি ক্লাসটিকে ভুল ঘোষণা করছিলাম

পরিবর্তে থাকার

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

আমি করছিলাম

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

যা স্পষ্টতই ভুল। বার্তাটি এতটাই বিভ্রান্তিমূলক যে আমি নিজেকে সাহায্য করতে পারিনি তবে ভাবছি এটি কনফিগারেশনের কোনও সমস্যা ছিল বা ভুলভাবে জাঙ্গো ব্যবহার করা যেহেতু আমি এতে খুব নতুন।

আমি একই নৈপুণ্যের মধ্য দিয়ে যাচ্ছি আশা করি তাদের সমস্যাটি সমাধান করতে পারে এমন কোনও নবজাতকের জন্য আমি এখানে এটি ভাগ করব।


0

আমি SECRET_KEYপরিবেশের পরিবর্তনশীল থেকে টানতে সরানোর পরে এবং এই অ্যাপ্লিকেশনটি চালানোর সময় সেট করতে ভুলে যাওয়ার পরে আমি এই ত্রুটিটি পেয়েছি । আপনার মধ্যে যদি এরকম কিছু থাকেsettings.py

SECRET_KEY = os.getenv('SECRET_KEY')

তারপরে নিশ্চিত হয়ে নিন যে আপনি আসলে পরিবেশের পরিবর্তনশীল সেট করছেন।


0

সম্ভবত আপনার নির্ভরশীল আমদানি রয়েছে

আমার ক্ষেত্রে আমি আমার মডেলটিতে প্যারামিটার হিসাবে সিরিয়ালাইজার ক্লাস ব্যবহার করেছি এবং সিরিয়ালাইজার ক্লাসটি এই মডেলটি ব্যবহার করছিল: সিরিয়ালাইজার_ক্লাস = অ্যাকাউন্টসায়ারাইজার

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 অ্যাপ্লিকেশনটির শীর্ষ স্তরের ফাইল । মডেলটি ব্যবহার করে আমাকে আমদানিগুলি ফাংশনে সরিয়ে নিতে হয়েছিল।

জ্যাঙ্গোর মনে হচ্ছে এমন কিছু অদ্ভুত কোড রয়েছে যা এরকম বিভিন্ন পরিস্থিতিতে বিভিন্নভাবে ব্যর্থ হতে পারে!


0

আমি আজও এই ত্রুটি পেয়েছি। বার্তা কিছু নির্দিষ্ট অ্যাপ্লিকেশানে রেফারেন্সড আমার অ্যাপ্লিকেশানগুলি মধ্যে INSTALLED_APPS । তবে আসলে এই নির্দিষ্ট অ্যাপটির সাথে এর কোনও যোগসূত্র ছিল না। আমি একটি নতুন ভার্চুয়াল পরিবেশ ব্যবহার করেছি এবং কিছু লাইব্রেরি ইনস্টল করতে ভুলে গেছি, যা আমি এই প্রকল্পে ব্যবহার করেছি। আমি অতিরিক্ত গ্রন্থাগারগুলি ইনস্টল করার পরে এটি কাজ করেছিল।


0

পাইচার্ম ব্যবহারকারীদের জন্য: "পরিষ্কার" প্রকল্প কাঠামো না ব্যবহার করে আমার একটি ত্রুটি হয়েছিল।

ছিল:

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

এখন:

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

এখানে অনেকগুলি ভাল সমাধান রয়েছে, তবে আমি মনে করি, প্রথমত, আপনার প্রকল্পের কাঠামোটি পরিষ্কার করা উচিত বা সেটিংয়ের আগে পাইচর্ম জ্যাঙ্গো সেটিংস টিউন করা উচিত DJANGO_SETTINGS_MODULE ভেরিয়েবলগুলি ।

আশা করি এটি কাউকে সাহায্য করবে। চিয়ার্স।


-1

বিষয়টি হ'ল:

  1. আপনি আপনার মডেলগুলির ফাইলে পরিবর্তন করেছেন, তবে সেগুলি ডিবিতে এখনও যোগ করেন নি, তবে আপনি পাইথন ম্যানেজ.পি রানসরভার চালানোর চেষ্টা করছেন।

  2. পাইথন ম্যানেজ.পি মেকমিগ্রেশন চালান

  3. পাইথন ম্যানেজ.পি মাইগ্রেশন

  4. পাইথন এখন পরিচালনা করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.