本文共 955 字,大约阅读时间需要 3 分钟。
今天用 Django 2.0 时模型的外键报了一个错误:
TypeError: __init__() missing 1 required positional argument: 'on_delete'
经过筛查,在创建多对一的关系的,需要在Foreign
的第二参数中加入 on_delete=models.CASCADE
主外关系键中,级联删除,也就是当删除主表的数据时候从表中的数据也随着一起删除。
on_delete参数的各个值(可选的值都内置在django.db.models中)的含义:
示例:
author = models.ForeignKey(AuthModel, null=True, blank=True, on_delete=models.SET_NULL)
关于SET()的使用:
**官方案例**def get_sentinel_user(): return get_user_model().objects.get_or_create(username='deleted')[0]class MyModel(models.Model): user = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.SET(get_sentinel_user), )
注:本文首发于 ,如若转载,请注来源