Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
    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)