Какая библиотека используется для импорта RadioInput (виджетов) в forms.py в Django? - PullRequest
0 голосов
/ 13 мая 2019

Я использую переключатели для пользовательского ввода в forms.py и хочу сохранить номинальное значение в базе данных django. У меня есть следующие поля:

from product.models import Rating
from django.forms import forms
from django.forms.fields import ChoiceField
from django.forms import ModelForm
from django import forms

class RatingForm(forms.ModelForm):
    class Meta:
        model = Rating
        fields = ('product', 'user', 'rating')
        widgets = forms.ChoiceField(widget=forms.RadioInput(),
                                   required=True)

Model.py

class Rating(models.Model):
CHOICES = (
    ('5-stars', '5-stars'),
    ('4-stars', '4-stars'),
    ('3-stars', '3-stars'),
    ('2-stars', '2-stars'),
    ('1-stars', '1-stars'),
)
product=models.ForeignKey(Product,null=True,blank=True, on_delete=models.PROTECT)
user=models.ForeignKey(User,null=True,blank=True, on_delete=models.PROTECT)
rating=models.ChoiceField(choices=CHOICES, max_length=128)

Я не нашел ни одной библиотеки для импорта этого виджета.Ниже приведена ошибка, с которой я сталкиваюсь:

AttributeError: модуль 'django.forms' не имеет атрибута 'RadioInput'?

Пожалуйста, если кто-нибудь может помочь?Или предложить другой способ сделать это?

1 Ответ

0 голосов
/ 13 мая 2019

Виджет называется RadioSelect, а не RadioWidget. См. документацию .

Обратите внимание, однако, что вы должны использовать виджет непосредственно в атрибуте widgets, а не как часть поля; и widgets - это словарь имен полей для виджетов:

    widgets = {'rating': forms.RadioSelect}
...