擅长:python、mysql、java
<p>在CreateView中,可以重写get\u initial方法:</p>
<pre class="lang-py prettyprint-override"><code>def get_initial(self):
self.initial = CreateView.get_initial(self)
self.initial["classteacher"] = self.request.user
return self.initial.copy()
</code></pre>
<p>然后需要将此字段添加到表单中</p>
<pre class="lang-py prettyprint-override"><code>class Timetableform(ModelForm):
class Meta:
model = Timetable
fields = ( 'start', 'end', 'period', “classteacher”)
</code></pre>
<p>如果您不想在窗体中显示此字段,并且仍然将classteacher添加为当前用户,则可以将HiddeInput小部件用于此字段:</p>
<pre class="lang-py prettyprint-override"><code>class Timetableform(ModelForm):
class Meta:
model = Timetable
fields = ( 'start', 'end', 'period', “classteacher”)
widgets = {"classteacher": HiddenInput}
</code></pre>
<p>在formset中,还可以使用hiddeninput小部件,或者在构造函数中使用form=Timetableform参数。同样的想法</p>