擅长:python、mysql、java
<p>可能不能,因为这取决于用户与表单的交互:在将表单发送到浏览器之前,服务器无法预先知道用户将选择哪个元素。您可能可以使用ajax实现这一点。我认为一个工作过程可以是:</p>
<ul>
<li>创建一个包含所有字段的表单,并使<code>make</code>字段<a href="https://stackoverflow.com/a/23463004/2844093">hidden</a></li>
<li>创建一个视图(我称之为<code>AjaxMakeFieldView</code>),该视图将捕获一个ajax请求,接受一个<code>vehicle_type</code>参数,并返回<code>make field</code>的HTML,其中填充了相关数据。在URLConf中为此视图添加一个URL。</li>
<li>在模板中,添加Javascript绑定:当用户选择<code>vehicle_type</code>时,浏览器将向<code>AjaxMakeFieldView</code>发送aan ajax请求,并用返回的HTML替换隐藏的<code>make</code>字段</li>
</ul>
<p>如果不需要javascript,另一种方法是两步式:</p>
<ul>
<li>具有<code>vehicle_type</code>字段的第一个窗体</li>
<li>提交第一个表单后,用户将获得第二个表单,其中包含一个<code>make</code>字段,根据在第一个表单中选择的<code>vehicle_type</code>填充初始数据。</li>
</ul>
<p>我从来没有这样做过,但是<a href="https://docs.djangoproject.com/en/1.7/ref/contrib/formtools/form-wizard/" rel="nofollow noreferrer">Django documentation on Form wizard</a>似乎是一个很好的开始。</p>