向 models.py 添加一个类会导致“视图不存在”错误吗?
Posted
技术标签:
【中文标题】向 models.py 添加一个类会导致“视图不存在”错误吗?【英文标题】:Does adding a class to models.py ever cause "view does not exist" error? 【发布时间】:2012-08-06 06:49:11 【问题描述】:我试图实现一个评级系统来接收用户提交的信息。
但我只是想知道是否可以在一个模型文件中有两个类并获得Could not import myapp.comments.views.stars. View does not exist in module myapp.comments.views.
在我的模型文件中,我有
class CommentWithRating(Comment):
rating = models.IntegerField()
def save(self, *args, **kwargs):
self.content_object.rating.add(score=self.rating, user=self.user, ip_address=self.ip_address)
super(CommentWithRating, self).save(*args, **kwargs)
class Rating(models.Model):
first_name = models.charField(maxlength=30)
last_name = models.charField(maxlength=30)
department = models.charField(maxlength=30)
comment = models.charField(maxlength=10000)
communi_rating = models.IntegerField()
prepar_rating = models.IntegerField()
interact_rating = models.IntegerField()
help_rating = models.IntegerField()
顺便说一句,stars 是一个 html 文件。有什么想法吗?
这是我的看法,
from django.shortcuts import render_to_response, render
from django.http import HttpResponse
from models import CommentWithRating
def stars(request):
return render(request, 'star.html', 'score': '')
我的错误信息很简单,
无法导入 myapp.cmets.views.stars。模块中不存在视图 myapp.cmets.views。
我的回溯是,
环境: 请求方法:GET
Django 版本:1.4
Python 版本:2.7.2
已安装的应用程序:
('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', '登记', 'django.contrib.admin', 'djangoatings') 已安装的中间件: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware')
追溯: get_response 中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py” 101.request.path_info) 解析中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/urlresolvers.py” 300. sub_match = pattern.resolve(new_path) 解析中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/urlresolvers.py” 209. return ResolverMatch(self.callback, args, kwargs, self.name) 回调中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/urlresolvers.py” 216. self._callback = get_callable(self._callback_str) 包装器中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/functional.py” 27. 结果 = 函数(*args) get_callable 中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/urlresolvers.py” 101. (lookup_view, mod_name))
异常类型:ViewDoesNotExist at /rating/ 异常值:无法导入 myapp.cmets.views.stars。模块 >myapp.cmets.views 中不存在视图。`
【问题讨论】:
请添加myapp/comments/views.py
文件的内容。
cmets文件夹中有init.py文件吗?
是的,我愿意。这是导致问题的原因吗?
【参考方案1】:
是的,这绝对是可能的。
尝试做一个
python ./manage.py shell
然后导入给您带来问题的模型或视图。这最终可能会为您提供更多有用的调试信息。
(来自Django views does not exist or could not import)
【讨论】:
以上是关于向 models.py 添加一个类会导致“视图不存在”错误吗?的主要内容,如果未能解决你的问题,请参考以下文章
Django:models.py 中的 def save()