2
現在、Djangoのウェブサイトで働いていて、私の音楽アプリ内のmodels.py
モジュールからviews.py
モジュールにクラスとその属性をインポートする際に問題があります。私はDjangoがメタクラスを使ってモデルを構築するので、定義されたフィールドはクラスの属性として終わるわけではありません。これが問題なのですか?それでどうすれば解決できますか?ModuleNotFoundError: '__main __。models'という名前のモジュールはありません。 '__main__'はパッケージではありません
ディレクトリ構造は:
music
migrations
templates
_init_
admin.py
apps.py
models.py
tests.py
urls.py
views.py
models.py
内のコードは次のとおりです。
from django.db import models
class Album(models.Model):
artist = models.CharField(max_length=250)
album_title = models.CharField(max_length=500)
genre = models.CharField(max_length=100)
album_logo = models.CharField(max_length=1000)
def __str__(self):
return self.album_title + ' - ' + self.artist
views.py
内のコードは次のとおりです。
from django.http import HttpResponse
from .models import Album
from django.template import loader
def index(request):
all_albums = Album.object.all()
template = loader.get_template('music/index.html')
context = {'all albums': all_albums,}
return HttpResponse(template.render(context, request))
def details(request, album_id):
return HttpResponse("<h2> Details for Album id: " + str(album_id) + " </h2>")
エラー:
ModuleNotFoundError: No module named '__main__.models'; '__main__' is not a package
エラー場所: from .models import Album
が定義されていない、
Album
クラスに定義する必要があります。 –あなたは何を指しているのですか? – Osso94
return文を1つのタブ(または好きな場合は4つのスペース)で '__str__'定義をインデントします。 – Marco