我试图在初始化表单后将字段设置为某个值.
例如,我有以下课程.
class CustomForm(forms.Form):
    Email = forms.EmailField(min_length=1, max_length=200)
在视图中,我希望能够做到这样的事情:
form = CustomForm()
form["Email"] = GetEmailString()
return HttpResponse(t.render(c))
因此,我的目标是能够在ModelForm中过滤ModelChoiceField查询集,只包含request.user创建的Places.
我的ModelForm很简单:
class PlaceEventForm(models.ModelForm):
    class Meta:
        model = Event
我希望能够添加如下内容:
def __init__(self, *args, **kwargs):
    super(PlaceEventForm, self).__init__(*args, **kwargs)
    self.fields['place'].queryset = Place.objects.filter(created_by=request.user)
但是,我似乎找不到在ModelForm中访问请求的方法.
我的观点是这样的:
class PlaceEventFormView(CreateView):
    form_class = PlaceEventForm
    template_name = 'events/event_create.html'
    @method_decorator(login_required)
    def dispatch(self, *args, **kwargs):
        return super(PlaceEventFormView, self).dispatch(*args, **kwargs)
我不确定这是否接近我应该做的,但我试过:
def get_form_kwargs(self):
    kwargs = super(PlaceEventFormView, self).get_form_kwargs()
    kwargs.update({'place_user': self.request.user})
    return kwargs
但是我得到了错误:init()得到了一个意外的关键字参数'place_user'
关于这个的任何想法?或者,任何人都可以想到一种方法来过滤我的ModelChoiceField在视图中,而无需将我的请求传递给ModelForm?
我有一个包含以下字段的表单:
image_choices = [] 
images = forms.ChoiceField(label=_("Images"), choices=image_choices, initial="")
在了解“初始”属性的值应该是什么之后,我需要能够更新该值。目前,我已在以下时间内完成此作业__init__:
def __init__(self, request, image_choices=image_choices,
             flavor_choices=flavor_choices, args, *kwargs): 
    super(UpdateWorkload, self).__init__(request, args, *kwargs) 
    selected_image = selected_workload['image'] 
    self.fields['images'].initial = selected_image
我没有收到任何错误,并且在打印时,该值就在那里,但是,在屏幕上的实际表单中,我仍然得到默认列表,并且没有选择特定项目,根据self.fields['images'].initial = str(selected_image)
我该如何解决这个问题?