【问题标题】:Exception Value: 'module' object has no attribute 'RangeInput'异常值:“模块”对象没有属性“范围输入”
【发布时间】:2014-07-02 15:38:50
【问题描述】:

我正在尝试制作一个滑块以允许用户在 Django 中对图像进行评分,我遇到了Django-Floppyforms

但是我在尝试通过示例 Slider Widget 工作时遇到问题

根据PyPi Installation guidelines,我使用命令pip install -U django-floppyforms 在虚拟环境中通过pip 安装了它。一个pip freeze给我

Django==1.6.2
django-floppyforms==1.2.0

然后我将其添加到我的 settings.py 中的INSTALLED_APPS

INSTALLED_APPS = (
    'django.contrib.admin',
    ...

    'django.contrib.flatpages',
    'polls',
    'survey',
    'floppyforms',
)

然后我创建了一个与我的 models.py 和 views.py 处于同一级别的 floppyforms.py 文件并复制到以下内容中

import floppyforms as forms


class Slider(forms.RangeInput):
    min = 5
    max = 20
    step = 5
    template_name = 'slider.html'

    class Media:
        js = (
            'js/jquery.min.js',
            'js/jquery-ui.min.js',
        )
        css = {
            'all': (
                'css/jquery-ui.css',
            )
        }


class SlideForm(forms.Form):
    num = forms.IntegerField(widget=Slider)

    def clean_num(self):
        num = self.cleaned_data['num']
        if not 5 <= num <= 20:
            raise forms.ValidationError("Enter a value between 5 and 20")

        if not num % 5 == 0:
            raise forms.ValidationError("Enter a multiple of 5")
        return num

但是,一旦我这样做,我现有的应用程序就会停止工作并给我错误

Exception Value:    'module' object has no attribute 'RangeInput'

有什么想法吗?我已经用谷歌搜索了这个错误,但似乎没有得到太多关于它的信息。我正在运行 Python 2.7.5

【问题讨论】:

    标签: django python-2.7 django-forms django-floppyforms


    【解决方案1】:

    问题是您将文件命名为floppyforms.py,它与模块名称相同。

    将您的文件重命名为 forms.py,这是 django 中用于表单的常规做法。

    【讨论】:

    • 完成。上面的 floppyforms.py 被重命名为 forms.py。但是我仍然遇到同样的错误。注意:当我刷新现有的工作应用程序时会出现错误。
    • 你可能还有一个 floppyforms.pyc 文件,你应该删除它。
    • 谢谢一百万。我什至从未考虑过这一点。作为记录,floppyforms.pyc 位于同一位置,但在 Eclipse 包资源管理器中不可见
    猜你喜欢
    • 1970-01-01
    • 2017-12-26
    • 2013-09-15
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    相关资源
    最近更新 更多