例外价值:'模块'对象没有属性' RangeInput'

时间:2014-07-02 15:38:51

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

我试图制作一个滑动条以允许用户对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

1 个答案:

答案 0 :(得分:2)

问题是您将文件floppyforms.py命名为与模块同名的文件。

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