【发布时间】:2025-12-19 11:10:12
【问题描述】:
class PluginReferenceField(models.ForeignKey):
def __init__(self, *args, **kwargs):
kwargs.update({'null': True}) # always allow Null
kwargs.update({'editable': False}) # never allow edits in admin
kwargs.update({'on_delete': SET_NULL}) # never delete plugin
super(PluginReferenceField, self).__init__(*args, **kwargs)
def _create(self, model_instance):
return self.rel.to._default_manager.create(name=model_instance.name)
def pre_save(self, model_instance, add):
if not model_instance.pk and add:
setattr(model_instance, self.name, self._create(model_instance))
else:
reference = getattr(model_instance, self.name)
if not reference:
setattr(model_instance, self.name, self._create(model_instance))
reference = getattr(model_instance, self.name)
if reference.name != model_instance.name:
reference.name = model_instance.name
reference.save()
return super(PluginReferenceField, self).pre_save(model_instance, add)
【问题讨论】:
-
你使用的是什么版本的 django/django-cms/djangocms-forms?这是谁的代码,是你的,还是包的一部分?
标签: django django-cms