2017-03-03 89 views
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

回答

4

__str__方法必須被定義爲Album類,否則自未定義

+2

就縮進它。 –

+0

你指的是什麼? – Osso94

+0

通過一個選項卡縮進'__str__'定義及其返回語句(如果您願意,可以使用4個空格) – Marco

相關問題