【问题标题】:How to set foreign-key to <null> in Django (without on_delete=models.SET_NULL)如何在 Django 中将外键设置为 <null>(没有 on_delete=models.SET_NULL)
【发布时间】:2019-05-10 13:45:54
【问题描述】:

您能否建议如何将外键设置为“NULL”? 在下面的示例中,我想重写 delete 方法,以便不删除图像,而是将它们的 FK 设置为“NULL”,以便稍后恢复并重新连接它们与父对象。


def delete(self, using=None, keep_parents=False):        
    self.foreighnkey = None # foreighnkey  is the fk field's name
    self.save()

# https://stackoverflow.com/questions/4446652/django-how-to-set-a-field-to-null
# doesn't work this way

附:父对象将保持不变,因此不能使用它们的删除方法

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    在这种情况下可以获取Primary模型实例,然后使用它的相关管理器调用

    Primary_model_instance.secondarymodel_set.remove(self)
    
    # or alternativelly
     self.foreighnkey.currentmodel_set.remove(self)
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-04
      • 2021-09-21
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多