当前位置: 首页 > 知识库问答 >
问题:

删除不带外键警告的django模型类对象

尹何平
2023-03-14

我用django模型在MySql中创建了两个表,一个是学生模型,另一个是出勤模型。

class Attendance(BaseModel):
    stu = models.ForeignKey(Students, verbose_name=_("Student"))

我没有在考勤课上给stu添加“on_delete=models.PROTECT”,因为我需要能够在没有保护警告的情况下删除一个学生对象,如果这个学生在考勤课上被定义为来自学生课的外键。

现在,当我删除一个Students对象时,与foreignkey连接的考勤记录也会被删除。

我想做的事情是,我想删除学生对象没有警告。但我想连接的外键记录在出席应该留在那里的历史报告。

学生对象将在没有警告的情况下被删除,考勤中与外键相关的行将不会被删除。

共有1个答案

王声
2023-03-14

根据您的描述,似乎您应该在_delete=models.SET _NULL上使用。通过此方法,不会删除外键值,而是将它们与已删除项的关系id设置为null。

因此,学生对象将被删除,并且stu值将被设置为Null。

 类似资料:
  • 问题内容: 我有一个带有rowID,经度,纬度,businessName,url,标题的表。可能看起来像: 如何删除所有重复项,但仅保留一个具有URL的副本(第一优先级),或者如果另一个不具有URL的标题(第二优先级),则保留具有标题的副本,然后删除其余重复项? 问题答案: 这是我的循环技术。这可能会因为没有成为主流而被否决-我对此很满意。

  • Django演示了如何设置或覆盖在文档中使用外键的级联删除。 但是如果我们想让这种效果反过来呢?如果我们希望fk模型的删除导致该模型的删除,该怎么办? 谢谢

  • 问题内容: 我为2个不同的数据库提供了2个模型: 数据库是手动创建的,但是它什么也不会改变。 在以下代码之后,将引发错误 为什么不能将外键和模型用于不同的数据库? 问题答案: 跨数据库限制 Django当前不支持跨多个数据库的外键或多对多关系。如果使用路由器将模型分区到不同的数据库,则这些模型定义的任何外键和多对多关系必须在单个数据库内部。 Django-多个数据库的局限性 Trouble 同样的

  • 问题内容: 我正在尝试对同一模型中的两个字段使用相同的外键,并且出现错误。 我正在尝试建立主要和辅助通话用户,但是在收到以下错误后不确定如何格式化关系 问题答案: 您必须为两个列定义不同的名称。例如: 另请参阅文档: 用于从相关对象到此对象的关系的名称。它也是(用于目标模型的反向过滤器名称的名称)的默认值。有关完整的解释和示例,请参见相关的对象文档。注意,在抽象模型上定义关系时必须设置此值。并且当

  • 问题内容: 我遇到一种情况,我想使用Meta选项来强制执行某条规则,这是中介模型: 这是UserProfile: 谢谢。 问题答案: 你不能 该子句直接转换为唯一索引。而且,您只能在单个表的列上设置这些值,而不能在多个表的组合上设置。 不过,您可以自己为其添加验证,只需覆盖该方法并将此验证添加到其中即可。 文件:http : //docs.djangoproject.com/en/dev/ref/

  • 问题内容: 我有一些PHP代码。当我运行它时,出现警告消息。 如何删除/禁止/忽略这些警告消息? 问题答案: 您确实应该修复引起警告的所有内容,但是可以使用来控制错误的可见性。要跳过警告消息,您可以使用以下方法: