你只需要从表单中排除它,然后在视图中进行设置即可。
class AnimalForm(ModelForm):
class Meta:
model = Animal
exclude = ('publisher',)
…并在视图中:
form = AnimalForm(request.POST)
if form.is_valid():
animal = form.save(commit=False)
animal.publisher = request.user
animal.save()
(还请注意,第一个else
子句(紧随重定向之后的各行)是不必要的。如果不加说明,执行将落入视图末尾的两行,它们是相同的。)