擅长:python、mysql、java
<p>您可能希望重写<code>ModelForm</code><code>__init__</code>方法:</p>
<pre><code>def __init__(self, *args, **kwargs):
super(LogHike, self).__init__(*args, **kwargs)
if 'hike' in kwargs:
self.fields['hike'].value = kwargs['hike']
</code></pre>
<p>现在您所需要的只是另一个视图,它接受传递的参数,然后您就可以进行设置了。为此扩展<code>urls.py</code>,然后执行以下操作:</p>
<pre><code>def log_hike_with_pre_set_hike(request, *args, **kwargs):
if request.method == 'POST':
# see your code
else:
form = LogHike(hike=kwargs['hike'])
return render(request, 'log_hike.html', {'form': form})
</code></pre>
<p>未经测试的代码,您可能必须对其进行调整,我来自基于类的视图,因此对您来说可能会有所不同</p>