Aku kehabisan akal. Setelah selusin jam memecahkan masalah, mungkin lebih, saya pikir saya akhirnya dalam bisnis, tetapi kemudian saya mendapat:
Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label
Ada begitu sedikit info tentang ini di web, dan tidak ada solusi di luar sana yang menyelesaikan masalah saya. Nasihat apa pun akan sangat dihargai.
Saya menggunakan Python 3.4 dan Django 1.10.
Dari my settings.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',
]
Dan file apps.py saya terlihat seperti ini:
from django.apps import AppConfig
class DeletenoteConfig(AppConfig):
name = 'DeleteNote'
dan
from django.apps import AppConfig
class LibrarysyncConfig(AppConfig):
name = 'LibrarySync'
python
django
python-3.x
Slbox
sumber
sumber
Jawaban:
Apakah Anda melewatkan memasukkan nama aplikasi Anda ke dalam file pengaturan? Ini
myAppNameConfig
adalah kelas default yang dibuat di apps.py oleh perintah .manage.py createapp myAppName . Di mana myAppName adalah nama aplikasi Anda.settings.py
Dengan cara ini, file pengaturan mengetahui apa yang Anda ingin panggil aplikasi Anda. Anda dapat mengubah tampilannya nanti di file apps.py dengan menambahkan kode berikut di
myAppName / apps.py
sumber
import django django.setup()
saya di dalam settings.py, ke bawahINSTALLED_APPS
entri.Saya mendapatkan kesalahan yang sama dan saya tidak tahu bagaimana memecahkan masalah ini. Butuh waktu berjam-jam untuk menyadari bahwa saya memiliki init.py pada direktori yang sama dengan manage.py dari django.
Sebelum:
Setelah:
Agak bingung bahwa Anda mendapatkan kesalahan "tidak mendeklarasikan label_aplikasi eksplisit" ini. Tetapi menghapus file init ini menyelesaikan masalah saya.
sumber
Saya mengalami kesalahan yang persis sama saat menjalankan pengujian dengan PyCharm. Saya telah memperbaikinya dengan mengatur
DJANGO_SETTINGS_MODULE
variabel lingkungan secara eksplisit . Jika Anda menggunakan PyCharm, cukup tekan tombol Edit Konfigurasi dan pilih Variabel Lingkungan .Tetapkan variabel ke
your_project_name.settings
dan itu harus memperbaiki hal itu.Sepertinya kesalahan ini terjadi, karena PyCharm menjalankan pengujiannya sendiri
manage.py
.sumber
DJANGO_SETTINGS_MODULE
untuk setiap konfigurasi pengujian Django dan Django yang baru.DJANGO_SETTINGS_MODULE
pertama kalinya ketika saya mengklikApply
kemudianOK
. Saya melakukannya untuk kedua kalinya dan sekarang berhasil. Sepertinya PyCharm sedikit aneh.<app>.<module> import <class>
- Impor otomatis PyCharm hilang<app>
. Setelah saya mengoreksi ini (juga memeriksa modul dependen) maka berfungsi dengan baik.Saya mendapatkan yang ini ketika saya menggunakannya,
./manage.py shell
lalu saya tidak sengaja mengimpor dari direktori tingkat proyek akarsumber
from fields import x
menjadifrom .fields import x
sebagai noob yang menggunakan Python3 , saya menemukan itu mungkin kesalahan impor daripada kesalahan Django
salah:
Baik:
ini terjadi beberapa hari yang lalu tetapi saya benar-benar tidak dapat mereproduksinya ... Saya pikir hanya orang yang baru mengenal Django yang dapat menjumpai ini. inilah yang saya ingat:
coba daftarkan model di admin.py:
coba jalankan server, error terlihat seperti ini
berubah
user
menjadi.user
, masalah terpecahkansumber
Saya memiliki masalah yang sama sekarang. Saya telah memperbaiki milik saya dengan menambahkan namespace pada nama aplikasi. Semoga seseorang menemukan ini bermanfaat.
apps.py
sumber
Saya mendapat kesalahan ini saat mengimpor model dalam percobaan, yaitu diberikan struktur proyek Django ini:
dalam file yang
test_models.py
saya imporMyModel
dengan cara ini:Masalah diperbaiki jika diimpor dengan cara ini:
Semoga ini membantu!
PS: Mungkin ini agak terlambat, tetapi saya tidak menemukan jawaban orang lain bagaimana menyelesaikan masalah ini di kode saya dan saya ingin membagikan solusi saya.
sumber
from .models import MyModel
. Mengubah untukfrom myapp.models import MyModel
memperbaiki masalah.Setelah terus mengalami masalah ini dan terus kembali ke pertanyaan ini, saya pikir saya akan membagikan apa masalah saya.
Semua yang @Xeberdee benar, jadi ikuti itu dan lihat apakah itu menyelesaikan masalah, jika tidak, ini adalah masalah saya:
Dalam my apps.py inilah yang saya punya:
Dan yang saya lakukan hanyalah menambahkan nama proyek di depan nama aplikasi saya seperti ini:
dan itu memecahkan masalah saya dan saya dapat menjalankan makemigrations dan migrate command setelah itu! semoga berhasil
sumber
Saya mendapat kesalahan hari ini mencoba menjalankan pengujian Django karena saya menggunakan
from .models import *
sintaks singkat di salah satu berkas saya. Masalahnya adalah saya memiliki struktur file seperti ini:dan
models/__init__.py
saya mengimpor model saya menggunakan sintaks singkat:Dalam aplikasi saya, saya mengimpor model seperti:
Hal ini disebabkan
Django model doesn't declare an explicit app_label
saat dijalankan./manage.py test
.Untuk memperbaiki masalah ini, saya harus mengimpor secara eksplisit dari jalur lengkap di
models/__init__.py
:Itu mengatasi kesalahannya.
H / t https://medium.com/@michal.bock/fix-weird-exceptions-when-running-django-tests-f58def71b59a
sumber
Dalam kasus saya, ini terjadi karena saya menggunakan jalur modul relatif di urls.py tingkat proyek ,
INSTALLED_APPS
danapps.py
bukannya di-rooting di root proyek. yaitu jalur modul absolut, bukan jalur modul relatif + peretasan.Tidak peduli seberapa banyak saya mengacaukan jalur di dalam
INSTALLED_APPS
danapps.py
di aplikasi saya, saya tidak bisa mendapatkan keduanyarunserver
danpytest
bekerja sampai ketiganya berakar di root proyek.Struktur folder:
Dengan yang berikut ini, saya bisa menjalankan
manage.py runserver
dan gunicorn dengan wsgi dan menggunakanportal
tampilan aplikasi tanpa masalah, tetapi pytest akan errorModuleNotFoundError: No module named 'apps'
meskipunDJANGO_SETTINGS_MODULE
dikonfigurasi dengan benar.config / settings.py:
biz_portal / apps / portal / apps.py:
config / urls.py:
Mengubah referensi aplikasi di config / settings.py ke
biz_portal.apps.portal.apps.PortalConfig
danPortalConfig.name
untukbiz_portal.apps.portal
mengizinkan pytest berjalan (saya belum memiliki tes untukportal
tampilan) tetapirunserver
akan membuat kesalahan denganAkhirnya saya
apps.portal
berusaha untuk melihat apa yang masih menggunakan jalur relatif, dan menemukan bahwa config / urls.py juga harus digunakanbiz_portal.apps.portal.urls
.sumber
Saya mengalami kesalahan ini ketika saya mencoba membuat migrasi untuk satu aplikasi yang memiliki migrasi salah format karena git merge. misalnya
Ketika saya menghapus migrasinya dan kemudian menjalankan:
kesalahan tidak terjadi dan migrasi berhasil dibuat.
sumber
Saya memiliki masalah serupa, tetapi saya dapat menyelesaikan masalah saya dengan menentukan secara eksplisit app_label menggunakan Meta Class di kelas model saya
sumber
Saya mendapat kesalahan ini saat mencoba memutakhirkan aplikasi Django Rest Framework saya ke DRF 3.6.3 dan Django 1.11.1.
Untuk orang lain dalam situasi ini, saya menemukan solusi saya dalam masalah GitHub , yaitu membatalkan
UNAUTHENTICATED_USER
pengaturan di pengaturan DRF :sumber
Saya baru saja mengalami masalah ini dan mencari tahu apa yang salah. Karena tidak ada jawaban sebelumnya yang mendeskripsikan masalah seperti yang terjadi pada saya, saya pikir saya akan mempostingnya untuk orang lain:
python migrate.py startapp myApp
dari folder root proyek saya, lalu pindahkan myApp ke folder anak denganmv myApp myFolderWithApps/
.python migrate.py makemigrations
. Semua berjalan dengan baik.myFolderWithApps.myApp
untuk mereferensikan aplikasi saya, tetapi saya lupa memperbarui MyApp / apps.py. Jadi saya mengoreksi myApp / apps.py, settings / INSTALLED_APPS dan jalur impor saya di aplikasi kedua saya.Singkatnya: - Masalah awalnya berasal dari nama aplikasi yang salah di apps.py dari myApp, di pengaturan dan di jalur impor aplikasi kedua saya. - tetapi itu tidak cukup untuk memperbaiki jalur di tiga tempat ini, karena migrasi telah dibuat dengan impor yang merujuk nama aplikasi yang salah. Oleh karena itu, kesalahan yang sama terus terjadi saat bermigrasi (kecuali kali ini dari migrasi).
Jadi ... periksa migrasi Anda, dan semoga berhasil!
sumber
Saya mendapat kesalahan serupa saat membangun API di Django rest_framework.
Jawaban luke_aus membantu saya dengan mengoreksi urls.py saya
dari
untuk
sumber
Dalam kasus saya, saya mendapat kesalahan ini ketika kode porting dari Django 1.11.11 ke Django 2.2. Saya sedang mendefinisikan kelas turunan FileSystemStorage kustom. Dalam Django 1.11.11 saya mendapatkan baris berikut di models.py:
dan kemudian di file saya memiliki definisi kelas:
Bagaimanapun, di Django 2.2 saya perlu secara eksplisit mereferensikan
FileSystemStorage
kelas ketika mengimpor:dan voila !, kesalahan itu hilang.
Perhatikan, bahwa setiap orang melaporkan bagian terakhir dari pesan kesalahan yang dilontarkan oleh server Django. Namun, jika Anda menggulir ke atas, Anda akan menemukan alasannya di tengah kesalahan mambo-jambo itu.
sumber
dalam kasus saya, saya dapat menemukan perbaikan dan dengan melihat kode orang lain itu mungkin masalah yang sama .. Saya hanya perlu menambahkan 'django.contrib.sites' ke daftar aplikasi terinstal di settings.py mengajukan.
semoga ini membantu seseorang. ini adalah kontribusi pertama saya untuk komunitas pengkodean
sumber
TL; DR: Menambahkan __init__.py kosong memperbaiki masalah saya.
Saya mendapat kesalahan ini di PyCharm dan menyadari bahwa file pengaturan saya tidak diimpor sama sekali. Tidak ada kesalahan yang jelas memberi tahu saya ini, tetapi ketika saya memasukkan beberapa kode yang tidak masuk akal ke dalam settings.py, itu tidak menyebabkan kesalahan.
Saya memiliki settings.py di dalam folder local_settings . Namun, saya tidak akan memasukkan __init__.py di folder yang sama untuk memungkinkannya diimpor. Setelah saya menambahkan ini, kesalahannya hilang.
sumber
Jika Anda telah mendapatkan semua konfigurasi dengan benar, itu mungkin hanya kekacauan impor. perhatikan bagaimana Anda mengimpor model yang melanggar.
Berikut ini tidak akan berhasil
from .models import Business
. Gunakan jalur impor lengkap sebagai gantinya:from myapp.models import Business
sumber
Jika semuanya gagal, dan jika Anda melihat kesalahan ini ketika mencoba mengimpor dalam "konsol Python" PyCharm (atau "konsol Django"):
Coba mulai ulang konsol.
Ini cukup memalukan, tetapi butuh beberapa saat sebelum saya menyadari bahwa saya lupa melakukan itu.
Inilah yang terjadi:
Menambahkan aplikasi baru, lalu menambahkan model minimal, lalu mencoba mengimpor model di konsol Python / Django (PyCharm pro 2019.2). Ini meningkatkan
doesn't declare an explicit app_label
kesalahan, karena saya belum menambahkan aplikasi baru keINSTALLED_APPS
. Jadi, saya menambahkan aplikasi keINSTALLED_APPS
, mencoba mengimpor lagi, tetapi masih mendapatkan kesalahan yang sama.Datang ke sini, baca semua jawaban lainnya, tetapi sepertinya tidak ada yang cocok.
Akhirnya saya sadar bahwa saya belum memulai ulang konsol Python setelah menambahkan aplikasi baru ke
INSTALLED_APPS
.Catatan: gagal memulai ulang konsol Python PyCharm, setelah menambahkan objek baru ke modul, juga merupakan cara yang bagus untuk mendapatkan
ImportError: Cannot import name ...
sumber
.env
file saya dan saya melakukan yang terbaik untuk membuat semuanya bekerja dengan konfigurasi yang sudah usang: /O ... M ... G Saya juga mendapatkan kesalahan ini dan saya menghabiskan hampir 2 hari untuk itu dan sekarang saya akhirnya berhasil menyelesaikannya. Sejujurnya ... kesalahan itu tidak ada hubungannya dengan apa masalahnya. Dalam kasus saya itu adalah masalah sintaksis sederhana. Saya mencoba menjalankan modul python mandiri yang menggunakan beberapa model django dalam konteks django, tetapi modul itu sendiri bukanlah model django. Tapi saya menyatakan kelas itu salah
alih-alih memiliki
saya sedang melakukan
yang jelas salah. Pesan ini sangat menyesatkan sehingga saya tidak bisa menahan diri tetapi berpikir itu adalah masalah dengan konfigurasi atau hanya menggunakan django dengan cara yang salah karena saya sangat baru untuk itu.
Saya akan membagikan ini di sini untuk seorang pemula karena saya melalui kekonyolan yang sama semoga dapat menyelesaikan masalah mereka.
sumber
Saya menerima kesalahan ini setelah saya memindahkan
SECRET_KEY
to pull dari variabel lingkungan dan lupa mengaturnya saat menjalankan aplikasi. Jika Anda memiliki sesuatu seperti ini di filesettings.py
lalu pastikan Anda benar-benar menyetel variabel lingkungan.
sumber
Kemungkinan besar Anda memiliki impor dependen .
Dalam kasus saya, saya menggunakan kelas serializer sebagai parameter dalam model saya, dan kelas serializer menggunakan model ini: serializer_class = AccountSerializer
Dan di file "serializers":
sumber
Saya mendapat kesalahan ini hari ini dan berakhir di sini setelah googling. Tak satu pun dari jawaban yang ada tampaknya relevan dengan situasi saya. Satu-satunya hal yang perlu saya lakukan adalah mengimpor model dari
__init__.py
file saya di tingkat atas sebuah aplikasi. Saya harus memindahkan impor saya ke dalam fungsi menggunakan model.Django tampaknya mempunyai beberapa kode aneh yang dapat gagal seperti ini dalam banyak skenario berbeda!
sumber
Saya mendapat kesalahan ini juga hari ini. Pesan tersebut merujuk ke beberapa aplikasi tertentu dari aplikasi saya di INSTALLED_APPS . Tetapi sebenarnya itu tidak ada hubungannya dengan Aplikasi khusus ini. Saya menggunakan Lingkungan virtual baru dan lupa menginstal beberapa Perpustakaan, yang saya gunakan dalam proyek ini. Setelah saya menginstal Perpustakaan tambahan, itu berhasil.
sumber
Untuk pengguna PyCharm: Saya mengalami kesalahan saat menggunakan struktur proyek yang tidak "bersih".
Dulu:
Sekarang:
Berikut ini banyak solusi yang bagus, tetapi saya pikir, pertama-tama, Anda harus membersihkan struktur proyek Anda atau menyetel pengaturan PyCharm Django sebelum mengatur
DJANGO_SETTINGS_MODULE
variabel dan seterusnya.Semoga ini akan membantu seseorang. Bersulang.
sumber
Masalahnya adalah:
Anda telah membuat modifikasi pada file model Anda, tetapi belum menambahkannya ke DB, tetapi Anda mencoba menjalankan Python manage.py runserver.
Jalankan Python manage.py makemigrations
Python manage.py migrate
Sekarang Python manage.py runserver dan semuanya akan baik-baik saja.
sumber