Python 限制删除django模型值的问题

Python 限制删除django模型值的问题,python,django,django-models,Python,Django,Django Models,我有一个外键,当它引用的对象被删除时,将通过_delete=models.SET(callable)上的可调用来填充默认值。。但是,我有这个问题,因为在Django管理站点中,我能够删除它传递给外键的可调用值,并且由于我的外键不能为null,这将引发一个我不喜欢的服务器错误。。因此,如果可能的话,我想通过Django管理站点本身来处理这个错误,我知道这是可能的。。如果你对此有更好的想法,我真的很感谢你的帮助 作为一个临时解决方案,我覆盖了引用模型的QuerySet>delete()方法,以跳过通

我有一个外键,当它引用的对象被删除时,将通过_delete=models.SET(callable)上的可调用
来填充默认值。。但是,我有这个问题,因为在Django管理站点中,我能够删除它传递给外键的可调用值,并且由于我的外键不能为null,这将引发一个我不喜欢的服务器错误。。因此,如果可能的话,我想通过Django管理站点本身来处理这个错误,我知道这是可能的。。如果你对此有更好的想法,我真的很感谢你的帮助

作为一个临时解决方案,我覆盖了引用模型的
QuerySet>delete()
方法,以跳过通过Django管理站点批量删除对象。我相信有比这更好的方法

外键:

class Product(models.Model):
    marektplace_tag = models.ForeignKey('tags.MarketplaceTag', on_delete=models.SET(default_marketplace_tag))
可调用的:

# Model: Product
def default_marketplace_tag():
    from tags.models import MarketplaceTag
    tag = MarketplaceTag.objects.get_or_create(name='None')        
    return tag[0].id
参考模型:

class MarketplaceTag(models.Model):    
    name = models.CharField(max_length=32, validators=[only_letters])

如果删除默认对象,它将创建一个新对象并引用该对象。这不会发生,因为在删除之前会检查默认对象,如果没有,则会创建默认对象,否则不会发生任何事情,并且会出现“IntegrityError”服务器错误。