擅长:python、mysql、java
<p>为什么你认为给窗体对象分配一个随机属性会使它有效?表单没有使用其实例属性来检查其有效性,文档中也没有任何内容暗示它会这样做。在</p>
<p>有几种方法可以正确地解决这个问题。首先,也可能是最丑的,是复制<code>request.POST</code>并将匹配对象的id插入其中。(您需要复制它,因为原始实例是不可变的)。在</p>
<p>更好的方法是从表单中完全排除字段(通过表单的<code>Meta</code>类),并在<code>is_valid</code>子句中执行以下操作:</p>
<pre><code>object = pdForm.save(commit=False)
rd = ResourceData.objects.get(pick_date__exact = pdForm.cleaned_data['pick_date'])
object.resource = rd
object.save()
</code></pre>