Я получил:
TemplateSyntaxError в / blog / post / test Caught NameError во время рендеринга: глобальное имя 'forms' не определено
для этого кода:
forms.py
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
models.py
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)
__init__.py
from Website.Comments import *
def get_model():
return models.PageComment
def get_form():
return forms.PageCommentForm #error here
импорт формы непосредственно внутри init .py приводит к:
AttributeError: объект 'модуль' не имеет атрибута 'Комментарии'
Вот трассировка стека, похоже, ошибка исходит от dojango, но на самом деле это не имеет смысла:
Файл "I: \ wamp \ www \ Website \ Comments__init __. Py", строка 1, из Website.Comments импортирует модели, формы Файл "I: \ wamp \ www \ Website \ Comments \ forms.py", строка 1, в из форм импорта dojango Файл "C: \ Python26 \ lib \ site-packages \ dojango \ forms__init __. py", строка 2, в импорте из виджетов * Файл "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, для приложения в настройках.INSTALLED_APPS) Файл" C: \ Python26 \ lib \ site-packages \ dojango \ util \ media. py ", строка 49, для приложения в настройках. УСТАНОВЛЕННОЕ_APPS) Файл" C: \ Python26 \ lib \ site-packages \ dojango \ util \ media.py ", строка 38, в find_ pp_dojo_dir_and_url media_dir = find_app_dojo_dir (app_name) File" C: \ Python26 \ lib \ сайты-пакеты \ dojango \ uti l \ media.py ", строка 27, в find_ pp_dojo_dir base = find_app_dir (имя_приложения) Файл" C: \ Python26 \ lib \ site-packages \ dojango \ util \ media.py ", строка 20, в find_ pp_dir mod = getattr (импорт (m, {}, {}, [a]), a)
Приложение Комментарии находится в установленных приложениях. Что я должен делать?
РЕДАКТИРОВАТЬ: Если я попытаюсь включить формы напрямую с import forms
, я получу следующее:
Удаление любой ссылки на dojango решает проблему.
Это ошибка в dojango.
Я сообщу об этом.