向 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 中创建用户通知系统

Django:models.py 中的 def save()

向 Django 管理员添加“状态灯”

Python 和 Django 博客示例项目

将 ImageField 添加到模型会导致 django 中的异常

为啥 django 强制所有模型类都在 models.py 中?