Django使用curry来构建具有自定义表单的表单集
发布时间:2020-12-20 13:36:23 所属栏目:Python 来源:网络整理
导读:我有一个关于在Django中使用curry函数的问题.我已成功使用它来构建带有自定义Form的inlinemodelformset: person_obj,formed = Mother.objects.get_or_create(user=request.user)FormSetClass = inlineformset_factory(Mother,Relation,form=RelationForm,ex
我有一个关于在Django中使用curry函数的问题.我已成功使用它来构建带有自定义Form的inlinemodelformset:
person_obj,formed = Mother.objects.get_or_create(user=request.user) FormSetClass = inlineformset_factory(Mother,Relation,form=RelationForm,extra=1) FormSetClass.form = staticmethod(curry(RelationForm,person=person_obj)) 这样做是为了让我能够通过表单init方法将人传递给kwargs,以过滤查询集: class RelationForm(ModelForm): def __init__(self,*args,**kwargs): person = kwargs.pop('person') qs = Relation.objects.filter(person=person) self.fields['my-field'].queryset = qs 我的问题是,我不知道它是如何工作的 – 我找不到任何关于它的文档,源代码并没有真正为我提供任何信息.任何人都可以解释这是如何工作的,并提供一些咖喱的好用例,除了这个? 解决方法
在Pro Django书中有一个很好的例子,说明咖喱是如何运作的.
简单地说,它允许您使用预定义的参数执行函数并将其另存为新函数,以便稍后仅使用所需的参数.所有这些都没有运行该功能. 对于上面的情况,curry是一个巨大的帮助,因为我们不需要实例化RelationForm只是为了传递person参数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |