我是django的新手,我尝试更新一些数据,将id_provider从form1传递给form2 form2必须显示提供者的数据
我有一个带有一点形式的html页面(form1):
是一个简单的输入文本,用户可以在其中写入数字。 数字作为参数传递给其他形式。
我的forms.py:
class ConfigForm(forms.ModelForm):
def __init__(self,idprov,*args,**kwargs):
super(ConfigForm,self).__init__(*args,**kwargs)
self.id_provider = idprov
class Meta:
model = Config
和我的views.py:
@csrf_exempt
def configView(request):
prov = get_object_or_404(Config, id_proveedor=id)
if request.method == 'POST':
form = ConfigForm(request.post, instance=prov)
if form.is_valid():
form.save()
return HttpResponseRedirect('/monitor/')
else:
form = ConfigForm(Config.id_proveedor,instance=prov)
return render_to_response('config.html',{'form':form},RequestContext(request))
这是我尝试显示数据的表单(form2):
{% block content %}
<div class="container">
<div class="row">
<div class="col-md-4">
<form method='POST' action='' class='form'>
<div class="form-group">
{% csrf_token %}
{{ form.as_p }}
</div>
<button type='submit' class="btn btn-primary">Grabar</button>
</form>
</div>
</div>
</div>
{% endblock %}
我收到错误:
/ config /
的TypeErrorid()只需要一个参数(0给定)
我不知道我的错误是否在我尝试更新数据(form2)的表单的方法中,或者我在表单视图中有一些错误。 我想我没有以正确的方式得到输入文本的值。
任何建议,链接或代码段都会非常有用
提前致谢
答案 0 :(得分:0)
id
是一个Python函数,你没有创建它
>>> id('test')
35092128
尝试
@csrf_exempt
def configView(request):
# Get your ID in another way for example this one
pk = request.POST.get('id', None)
if pk is None:
# Handle error
prov = get_object_or_404(Config, id_proveedor=pk)
# ^^
应该有效
BTW使用csrf_exempt
通常不是一个好主意。