2

そのため、DjangoProject で「最初の Django アプリ」を実行して、サイド プロジェクトの Django の速度を上げようとしていますが、初めてビューを設定しようとすると、この奇妙なメッセージが表示されます。

ImportError at /index
cannot import name views
Request Method: GET
Request URL:    http://localhost:8000/index
Django Version: 1.5.4
Exception Type: ImportError
Exception Value:    
cannot import name views
Exception Location: /Users/Dev/Desktop/socialSignIn/socSignInLocater/polls/admin.py in <module>, line 2
Python Executable:  /usr/bin/python
Python Version: 2.7.2
Python Path:    
['/Users/Dev/Desktop/socialSignIn/socSignInLocater',
 '/Library/Python/2.7/site-packages/setuptools-1.1.6-py2.7.egg',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC',
 '/Library/Python/2.7/site-packages']
Server time:    Thu, 3 Oct 2013 15:58:02 -0400

エラーは 2 行目の root/polls/admin.py にあり、「ビュー」をインポートできないと不平を言っているようです。問題は、ビューをインポートしようとしていないことです

admin.py

#admin.py
from django.contrib import admin
from polls.models import Choice
from polls.models import Poll
# admin.site.register(Poll)

class ChoiceInline(admin.TabularInline):
    model = Choice
    extra = 1

class PollAdmin(admin.ModelAdmin):
    fields = ["pub_date", "question"]
    inlines = [ChoiceInline]
    list_display = ("question", "pub_date", "was_published_recently")
    list_filter = ['pub_date']
    sarch_fields = ['question']
    date_heirarchy = 'pub_date'

admin.site.register(Poll, PollAdmin)

# admin.site.register(Choice)

エラー メッセージは、問題が Choice モデルへのインポート呼び出しであることも示していますが、ビューも呼び出していません。

#models.py
from django.db import models
import datetime
from django.utils import timezone

# Create your models here.

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date_published')
    def __unicode__(self):
        return self.question
    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
    def __unicode__(self):
        return self.choice_text

これを修正する方法についてのアイデアはありますか?

アップデート:

#views.py
from django.http import HttpResponse
# from django.views.generic.base import TemplateView

def index(request):
    return HttpResponse("You found the Poll Index.")

#urls.py
from django.conf.urls.defaults import * #patterns, url
#
from polls import views

urlpatterns = patterns('',
    url(r'^$', views.index, name='index')
)

更新 #2: 奇妙なことに、admin.py ファイル全体をコメントアウトしてから再定義すると機能しますfrom polls import viewsimport views、そうすることで管理セクションを削除してしまいました。何か案は?

4

3 に答える 3

1

わかりましたので、バグを「修正」しましたが、これが機能する理由は正確にはわかりません。

admin.py で、インポートを次から変更しました

from django.contrib import admin
from polls.models import Choice
from polls.models import Poll

import views
from django.contrib import admin
from models import *

おそらくファイル構成に関係していますか?とにかく、コメントしてくれてありがとう。

于 2013-10-05T20:18:45.110 に答える