def get_model_form(self, **kwargs):
"""
?? Model ?? Form ?????????
"""
if self.exclude is None:
exclude = []
else:
exclude = list(self.exclude)
exclude.extend(self.get_readonly_fields())
if self.exclude is None and hasattr(self.form, '_meta') and self.form._meta.exclude:
# ?? :attr:`~xadmin.views.base.ModelAdminView.exclude` ? None??? form ? Meta.exclude ????
# ??? form ? Meta.exclude
exclude.extend(self.form._meta.exclude)
# ?? exclude ?????????? None
#exclude = exclude or None
defaults = {
"form": self.form,
"fields": self.fields and list(self.fields) or None,
"exclude": exclude,
"formfield_callback": self.formfield_for_dbfield, # ?????????????
}
defaults.update(kwargs)
# ?? modelform_factory ?? Form ?
return modelform_factory(self.model, **defaults)
评论列表
文章目录