我得到:
templatesyntaxError位于/blog/post/test
呈现时捕获到名称错误:
未定义全局名称“Forms”
对于这个代码:
表单
from dojango.forms import widgets
from django.contrib.comments.forms import CommentForm
from Website.Comments.models import PageComment
class PageCommentForm(CommentForm):
title = widgets.TextInput()
rating = widgets.RatingInput()
def get_comment_model(self):
return PageComment
def get_comment_create_data(self):
# Use the data of the superclass, and add in the title field
data = super(PageComment, self).get_comment_create_data()
data['title'] = self.cleaned_data['title']
return data
模特儿
from Website.CMS.models import Author, Rating
from django.db.models import CharField, ForeignKey
from django.contrib.comments.models import Comment
class PageComment(Comment):
title = CharField(max_length=300)
parent = ForeignKey(Author, related_name='parent_id', null=True)
author = ForeignKey(Author, related_name='author_id')
def __unicode__(self):
return self.title
class CommentRating(Rating):
comment = ForeignKey(PageComment)
π介子
from Website.Comments import *
def get_model():
return models.PageComment
def get_form():
return forms.PageCommentForm #error here
直接在内部导入表单
初始化
Py的结果是:
attributeError:“module”对象没有
属性“comments”
这是堆栈跟踪,错误似乎来自Dojango,但这并不真正有意义:
文件
“i:\wamp\www\website\comments_uu init_uuu.py”,
第1行
来自网站。注释导入模型,表单文件
“i:\wamp\www\website\comments\forms.py”,
第1行
从dojango导入表单文件“c:\python26\lib\site packages\dojango\forms\init_uuuuu.py”,
第2行
从widgets导入*文件“c:\python26\lib\site packages\dojango\forms\widgets.py”,
第11行
从dojango.util.config导入配置文件
“C:\python26\lib\site packages\dojango\util\config.py”,
第3行
从dojango.util导入媒体文件
“C:\python26\lib\site packages\dojango\util\media.py”,
第49行
用于设置中的应用程序。已安装的应用程序)文件
“C:\python26\lib\site packages\dojango\util\media.py”,
第49行
用于设置中的应用程序。已安装的应用程序)文件
“C:\python26\lib\site packages\dojango\util\media.py”,
第38行,在find_pp_dojo_dir_and_url中
media_dir=find_app_dojo_dir(app_name)文件
“C:\python26\lib\site packages\dojango\util\media.py”,
第27行,在find_pp_dojo_dir中
base=find_app_dir(app_name)文件
“C:\python26\lib\site packages\dojango\util\media.py”,
第20行,在find_pp_dir中
mod=GETATFR
进口
(m,,,[a]),a)
注释应用程序位于已安装的应用程序中。
我该怎么办?
编辑:
如果我试图直接在
import forms
我明白这一点:
回溯(最近一次呼叫的最后一次):
文件“i:\wamp\www\website\manage.py”,第11行,in
执行\管理器(设置)
文件“C:\python26\lib\site packages\django\core\management\uuuinit\uuuuu.py”,第行
438,执行经理
实用程序.execute()
文件“C:\python26\lib\site packages\django\core\management\uuuinit\uuuuu.py”,第行
379,执行中
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“C:\python26\lib\site packages\django\core\management\base.py”,第191行,
运行中\来自\ argv
self.execute(*参数,**选项。
双关语
)
文件“C:\python26\lib\site packages\django\core\management\base.py”,第209行,
执行中
translation.activate('en-us')
文件“c:\python26\lib\site packages\django\utils\translation\u init\uuuuuuy”,lin
E 66,激活中
返回实际激活(语言)
文件“C:\python26\lib\site packages\django\utils\functional.py”,第55行,in_
咖喱的
返回curried_unc(*(args+moreags),**dict(kwargs,**morekwargs))
文件“c:\python26\lib\site packages\django\utils\translation\u init\uuuuuuy”,lin
E 36,在延迟装载机中
返回getattr(trans,实名)(*args,**kwargs)
文件“c:\python26\lib\site packages\django\utils\translation\trans\real.py”,l
INE 193,激活中
_ active[currentThread()]=翻译(语言)
文件“c:\python26\lib\site packages\django\utils\translation\trans\real.py”,l
INE 176,翻译
默认_translation=_fetch(settings.language_code)
文件“c:\python26\lib\site packages\django\utils\translation\trans\real.py”,l
INE 159,进城
app=导入模块(appname)
文件“c:\python26\lib\site packages\django\utils\importlib.py”,第35行,在im中
端口模块
进口
(姓名)
文件“i:\wamp\www\website\comments_uu init_uuu.py”,第2行,in
进口形式
文件“i:\wamp\www\website\comments\forms.py”,第3行,in
从dojango.forms导入字段、小部件
文件“C:\python26\lib\site packages\dojango\forms_uuu init_uuuu.py”,第2行,in
从小工具导入*
文件“c:\python26\lib\site packages\dojango\forms\widgets.py”,第11行,in
从dojango.util.config导入配置
文件“c:\python26\lib\site packages\dojango\util\config.py”,第3行,in
从dojango.util导入媒体
文件“C:\python26\lib\site packages\dojango\util\media.py”,第49行,in
用于设置中的应用程序。已安装的应用程序)
文件“C:\python26\lib\site packages\dojango\util\media.py”,第49行,in
用于设置中的应用程序。已安装的应用程序)
文件“c:\python26\lib\site packages\dojango\util\media.py”,第38行,在find\u a中
pp dojo_dir_和url
media_dir=find_app_dojo_dir(app_name)
文件“c:\python26\lib\site packages\dojango\util\media.py”,第27行,在find兘a中
帕普多约迪尔
base=find_app_dir(app_name)
文件“c:\python26\lib\site packages\dojango\util\media.py”,第20行,在find偅a中
PPDIR
mod=GETATFR
进口
(m,,,[a]),a)
attributeError:“module”对象没有属性“comments”
删除Dojango的任何引用可以解决问题。