【发布时间】:2012-04-01 04:21:19
【问题描述】:
新手问题: 我需要从views.py中的方法接受表单中的参数,但这给我带来了麻烦。在视图中,我使用以下 sn-p 创建了一个方法:
def scan_page(request):
myClient = request.user.get_profile().client
form = WirelessScanForm(client = myClient) # pass parameter to the form
在 forms.py 中我定义了以下形式:
class WirelessScanForm(forms.ModelForm):
time = forms.DateTimeField(label="Schedule Time", widget=AdminSplitDateTime())
def __init__(self,*args,**kwargs):
myClient = kwargs.pop("client") # client is the parameter passed from views.py
super(WirelessScanForm, self).__init__(*args,**kwargs)
prob = forms.ChoiceField(label="Sniffer", choices=[ x.sniffer.plug_ip for x in Sniffer.objects.filter(client = myClient) ])
但是 django 一直给我错误提示:TemplateSyntaxError: Caught NameError while rendering: name 'myClient' is not defined(这个错误发生在查询中)
我担心这里缺少一些愚蠢的东西,但我无法真正弄清楚为什么。请帮忙,谢谢。
【问题讨论】:
-
请发布完整的回溯。
标签: django forms parameter-passing