如何在Django中拆分表单字段以显示多个值

“我的旅程”模型包含两个字段,距离和时间:

class Journey(models.Model):
    distance = models.PositiveIntegerField(default=0)
    time = models.PositiveIntegerField(default=0)

我正在尝试创建一个Modelform,其中时间字段将被拆分以显示“ hrs”,“ min”和“ sec”的输入。然后,我希望压缩这些值以返回一个单个值。目前,我的forms.py看起来像这样:

from django import forms
from django.forms import MultiWidget
from .models import Journey


class DistanceTimeModelForm(forms.ModelForm):
    time = forms.MultiValueField(
        widget=MultiWidget(
            widgets=[
                forms.IntegerField(attrs={"placeholder": "hrs"}),forms.IntegerField(attrs={"placeholder": "min"}),forms.IntegerField(attrs={"placeholder": "sec"}),]
        ),require_all_fields=True,error_messages={"incomplete": "Please enter a number"},)

    class Meta:
        model = Journey
        fields = ["distance","time"]

当我尝试运行服务器时,我收到TypeError: __init__() got an unexpected keyword argument 'attrs'。有谁能够帮助我了解如何解决此问题?我已经在网上寻找解决方案已有一段时间了,但到目前为止还是很困惑。

newsatan 回答:如何在Django中拆分表单字段以显示多个值

您可以改为创建DurationField:

class Journey(models.Model):
    distance = models.PositiveIntegerField(default=0)
    time = models.DurationField()

class DistanceTimeModelForm(forms.ModelForm):
    class Meta:
        model = Journey
        fields = ["distance","time"]
本文链接:https://www.f2er.com/1426644.html

大家都在问