Py学习  »  Django

如何在Django中创建和保存具有多选值的模型

Nick • 2 年前 • 1086 次点击  

我正在尝试创建一个模型,在该模型中,我可以通过表单将一周中的多天分配给一个客户。但是,当我尝试保存它时,会出现以下错误。

django.db.utils.DataError: value too long for type character varying(2)

我正在使用django multiselectfield包来创建多个选择复选框。

https://pypi.org/project/django-multiselectfield/

型号.py

from multiselectfield import MultiSelectField

DAYS_OF_THE_WEEK_CHOICES = [

('Mo', 'Monday'),
('Tu', 'Tuesday'),
('We', 'Wednesday'),
('Th', 'Thursday'),
('Fr', 'Friday'),
('Sa', 'Saturday'), 
('Su', 'Sunday'), 
]

class Customer(models.Model):
    days_of_the_week = MultiSelectField(choices=DAYS_OF_THE_WEEK_CHOICES)

表格.py

RECURRINGDAYS = [
        ('Mo','Monday'),
        ('Tu','Tuesday'),
        ('We','Wednesday'),
        ('Th','Thursday'),
        ('Fr','Friday'),
        ('Sa','Saturday'),
        ('Su','Sunday')
        ]

class CustomerCreateForm(forms.Form):
    days_of_the_week = forms.MultipleChoiceField(required=False, choices=RECURRINGDAYS, widget=forms.CheckboxSelectMultiple(), label="Recurring Day(s)?")

视图.py

from .models import Customer
from .forms import CustomerCreateForm
def create_customer(request):
    form = CustomerCreateForm(request.POST or None)
    if request.POST:
        if form.is_valid():
           recurringDays = form.cleaned_data['days_of_the_week']

           newCustomer = Customer(
                        days_of_the_week = recurringDays
                        )
           newCustomer.save()

return render(request, "customer.html", context)

如果有人填写表格并选择星期一和星期二,我如何将其保存到数据库客户模型中?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/158246
 
1086 次点击  
文章 [ 1 ]  |  最新文章 2 年前