from forms import SomeModelForm
from models import SomeModel
def view_name(request,pk,field):
SomeModelFieldForm(SomeModelForm):
class Meta(SomeModelForm.Meta):
fields = (field,)
inst = SomeModel.objects.get(pk=pk)
form = SomeModelFieldForm(instance=inst)
#the rest of your view goes here...
#...send only the form's field:
ctx = {'field': form[field]}
return render_to_response("template",ctx)
我最近做了类似的事情,我的解决方案是动态地将表单子类化,只提供所需的字段,并仅呈现该字段:
这将利用原始表单的特殊性—例如,如果您有专门定义的小部件或其他限制,或者其他什么。然后它将整个表单限制为一个字段。这是为了允许对现有模型上的单个字段进行验证。在
但是,您不想发送整个表单,只需要发送单个字段。
form[field]
是一个django.forms.forms.BoundField
,它表示您传入的特定字段。在例如,如果您使用来自
^{pr2}$django.contrib.auth.models
的User
模型,并且为特定用户创建了一个窗体,则在空闲调用form["username"]
时将返回:调用
print form["username"]
将打印:相关问题 更多 >
编程相关推荐