在django管理员,我有一个内联,我想让查看用户自动填写。在clean
函数中,它使用request.user
填充created_by
字段。问题是由于表格排除了created_by
字段,因此插入到cleaned_fields
中的值显然会被忽略。我怎样才能做到这一点?我希望小部件根本不显示。排除一个表单域,但添加它干净()
class NoteInline(admin.TabularInline):
model = Note
extra = 1
can_delete = False
def get_formset(self, request, obj=None, **kwargs):
"""
Generate a form with the viewing CSA filled in automatically
"""
class NoteForm(forms.ModelForm):
def clean(self):
self.cleaned_data['created_by'] = request.user
return self.cleaned_data
class Meta:
exclude = ('created_by',)
model = Note
widgets = {'note': forms.TextInput(attrs={'style': "width:80%"})}
return forms.models.inlineformset_factory(UserProfile, Note,
extra=self.extra,
form=NoteForm,
can_delete=self.can_delete)
不会因为这方面的工作:http://imgur.com/fbajE.png – priestc 2010-10-31 19:25:13
在这种情况下,它的时间为一个重构。参见上面的编辑示例 – 2010-10-31 21:07:33