def get_form(self, request, obj=None, **kwargs): """ Returns a Form class for use in the admin add view. This is used by add_view and change_view. """ if self.declared_fieldsets: fields = flatten_fieldsets(self.declared_fieldsets) else: fields = None if self.exclude is None: exclude = [] else: exclude = list(self.exclude) exclude.extend(kwargs.get("exclude", [])) exclude.extend(self.get_readonly_fields(request, obj)) # Exclude language_code, adding it again to the instance is done by # the LanguageAwareCleanMixin (see translatable_modelform_factory) exclude.append('language_code') old_formfield_callback = curry(self.formfield_for_dbfield, request=request) defaults = { "form": self.form, "fields": fields, "exclude": exclude, "formfield_callback": old_formfield_callback, } defaults.update(kwargs) language = self._language(request) return translatable_modelform_factory(language, self.model, **defaults)
def get_form(self, request, obj=None, **kwargs): """ Returns a Form class for use in the admin add view. This is used by add_view and change_view. """ if self.declared_fieldsets: fields = flatten_fieldsets(self.declared_fieldsets) else: fields = None if self.exclude is None: exclude = [] else: exclude = list(self.exclude) exclude.extend(kwargs.get("exclude", [])) exclude.extend(self.get_readonly_fields(request, obj)) # Exclude language_code, adding it again to the instance is done by # the LanguageAwareCleanMixin (see translatable_modelform_factory) exclude.append('language_code') old_formfield_callback = curry(self.formfield_for_dbfield, request=request) defaults = { "form": self.form, "fields": fields, "exclude": exclude, "formfield_callback": old_formfield_callback, } defaults.update(kwargs) language = self._language(request) if self.translated_fields: mopts = self.model._meta all_translated_fields = mopts.translations_model._meta.get_all_field_names() unknown = [fn for fn in self.translated_fields if fn not in all_translated_fields] if unknown: raise AttributeError("Fields %s are in %s.translated_fields, " "but there are no surch fields in %s" \ % (unknown, self.__class__, mopts.translations_model)) return translatable_modelform_factory(language, self.model, **defaults)