Django projesinde typeError hatası alma
Aug 17 2020
Yeni projem için sanal bir ortam oluşturdum, django kurdum ve yeni projeye başladım. Ancak, manage.py ile bir kod satırı çalıştırdığımda bu uzun hatayı alıyorum.
PS D:\My stuff\Website development\Isow website\isow> python manage.py makemigrations
No changes detected
Traceback (most recent call last):
File "manage.py", line 22, in <module>
main()
File "manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "C:\Users\rahma\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
utility.execute()
File "C:\Users\rahma\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\management\__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\rahma\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\management\base.py", line 336, in run_from_argv
connections.close_all()
File "C:\Users\rahma\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\utils.py", line 224, in close_all
connection.close()
File "C:\Users\rahma\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\backends\sqlite3\base.py", line 248, in close
if not self.is_in_memory_db():
File "C:\Users\rahma\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\backends\sqlite3\base.py", line 367, in is_in_memory_db
return self.creation.is_in_memory_db(self.settings_dict['NAME'])
File "C:\Users\rahma\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\backends\sqlite3\creation.py", line 12, in is_in_memory_db
return database_name == ':memory:' or 'mode=memory' in database_name
TypeError: argument of type 'WindowsPath' is not iterable
Veritabanı Girişi:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
Yanıtlar
5 iklinac Aug 17 2020 at 11:33
Görünüşe göre NAME, dize yerine pathlib.Path ( WindowsPath ) nesnesine dönüştürülüyor ve bu, os.path'in dizeleri beklediği gibi Django'da kullanılamaz (Derinlemesine araştırılmadığı için% 100 emin değil)
Bu nedenle dizede yayınlama uygun olur
'NAME': str(os.path.join(BASE_DIR, "db.sqlite3"))
2 FirePanda Oct 05 2020 at 17:48
Venv'de emrinizi gerçekten uyguladığınızdan emin olun (görmelisiniz (venv)
)
O halde @iklinac'ın dediği gibi iseniz, bu sorununuzu çözmelidir:
'NAME': str(os.path.join(BASE_DIR, "db.sqlite3"))
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'