cms_plugins: rename hook get_object to get_form_instance as it interacts with ModelAdmin existing method

This commit is contained in:
Benjamin Dauvergne 2014-03-21 17:49:24 +01:00
parent e727271967
commit a42cc02686
1 changed files with 6 additions and 5 deletions

View File

@ -8,7 +8,7 @@ from cms.plugin_pool import plugin_pool
from cms.models.pluginmodel import CMSPlugin
from . import models, utils, app_settings
from . import utils, app_settings
class FormPluginBase(CMSPluginBase):
@ -31,9 +31,10 @@ class FormPluginBase(CMSPluginBase):
form_class = self.get_form_class(request, context, instance,
placeholder)
if issubclass(form_class, ModelForm):
if not hasattr(self, 'get_object'):
raise ImproperlyConfigured('Your plugin class is missing a get_object method but use a ModelForm')
kwargs['instance'] = context['object'] = self.get_object(request, context, instance, placeholder)
if not hasattr(self, 'get_form_instance'):
raise ImproperlyConfigured('Your plugin class is missing a get_form_instance method but use a ModelForm')
kwargs['instance'] = context['object'] = \
self.get_form_instance(request, context, instance, placeholder)
if utils.callable_has_arg(form_class.__init__, 'plugin_instance'):
kwargs['plugin_instance'] = instance
if utils.callable_has_arg(form_class.__init__, 'request'):
@ -66,7 +67,7 @@ class ProfileFormPlugin(FormPluginBase):
module = importlib.import_module(module_path)
return getattr(module, class_name)
def get_object(self, request, context, instance, placeholder):
def get_form_instance(self, request, context, instance, placeholder):
return request.user
plugin_pool.register_plugin(ProfileFormPlugin)