你可以在admin.py或单独的forms.py中添加ModelForm类,然后像往常一样在其中声明你的额外字段。我还给出了一个示例,说明如何在form.save()中使用这些值:
from django import forms
from yourapp.models import YourModel
class YourModelForm(forms.ModelForm):
extra_field = forms.CharField()
def save(self, commit=True):
extra_field = self.cleaned_data.get('extra_field', None)
# ...do something with extra_field here...
return super(YourModelForm, self).save(commit=commit)
class Meta:
model = YourModel
要使其他字段仅出现在管理员中:
像这样:
class YourModelAdmin(admin.ModelAdmin):
form = YourModelForm
fieldsets = (
(None, {
'fields': ('name', 'description', 'extra_field',),
}),
)