django form
ModelForm的继承者有两种保存数据方式:
一:创建新的数据:
f = ArticleForm(request.POST)
new_article = f.save()
二:更新数据库:
a = Article.objects.get(pk=1)
f = ArticleForm(request.POST, instance=a)
f.save()
保存时候的commit选项:
f = AuthorForm(request.POST)
new_author = f.save(commit=False)
new_author.some_field = ’some_value’
new_author.save()
f.save_m2m()
Calling save_m2m() is only required if you use save(commit=False).
两种安全的方式:
class AuthorForm(ModelForm):
class Meta:
model = Author
fields = ’__all__’
class PartialAuthorForm(ModelForm):
class Meta:
model = Author
exclude = [’title’]
For example if you wanted to customize the wording of all user facing strings for the name field:
from django.utils.translation import ugettext_lazy as _
class AuthorForm(ModelForm):
class Meta:
model = Author
fields = (’name’, ’title’, ’birth_date’)
labels = {
’name’: _(’Writer’),
}
help_texts = {
’name’: _(’Some useful help text.’),
}
error_messages = {
’name’: {
’max_length’: _("This writer’s name is too long."),
},
}
For technical reasons, a subclass cannot inherit from both a ModelForm and a Form simultaneously.