0

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

但是,我在尝试使用示例Slider Widget时遇到问题

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

Django==1.6.2
django-floppyforms==1.2.0

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

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

4

1 回答 1

2

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

将您的文件重命名forms.py为 django 对于表单的常规做法。

于 2014-07-02T15:41:39.477 回答