如何迭代ModelMultipleChoiceField

2024-05-13 01:06:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我的modelforms.py看起来像:

class ChangeEventTimeForm(forms.ModelForm):

def __init__(self, *args, **kwargs):
    super(ChangeEventTimeForm, self).__init__(*args, **kwargs)
    events = Event.objects.values

    self.fields['map_area'] = forms.ModelChoiceField(queryset=MapArea.objects.all(), required=False)
    self.fields['event'] = forms.ModelMultipleChoiceField(queryset=Event.objects.all(), required=False, widget=forms.CheckboxSelectMultiple())

class Meta:
    model = ChangeEventTime
    fields = ('map_area', 'time_map', 'event', 'time_event', )

在我的模型.py有:

^{pr2}$

问题是我不能迭代自我事件. 打印对象的输出为:

[

<

E

e

n

t

公司名称:

a

d

s

a

d

>

你说

<

E

e

n

t

公司名称:

r

e

k

>

]

我需要的是访问这两个对象并得到一些变量。怎么做?我浪费了一整天,不知道该怎么办。它看起来是一种unicode数组,我不能对它调用任何方法。在


Tags: pyselfeventmapfieldsobjectsinitargs
1条回答
网友
1楼 · 发布于 2024-05-13 01:06:30

您不应该将模型字段event定义为models.CharField,它应该与您试图在表单中执行的操作相匹配。你得把它改成

events = models.ManyToManyField(Event)

一般来说,您不应该依赖于重写save()来实现您想要的结果,该方法有很多问题,因此它可能会导致问题。我建议改为检查表格:

^{pr2}$

相关问题 更多 >