请帮助我:
File "C:\Python36\lib\site-packages\notifications\models.py", line 170, in Notification
recipient = models.ForeignKey(settings.AUTH_USER_MODEL, blank=False, related_name='notifications')
TypeError: __init__() missing 1 required positional argument: 'on_delete'
答案 0 :(得分:1)
使用" on_delete = models.CASCADE "在related_name ='通知'
之后答案 1 :(得分:1)
您的Notification
模型与您的用户模型有ForeignKey
的关系。因此,单个用户模型实例可以具有与之关联的多个Notification
实例。 on_delete
的含义(django要求你)是,如果删除用户模型的实例,django应该对所有关联的Notification
实例做什么?
从django 2.x
开始,此论点成为必需。
请阅读this以查看所有选项。但是快速破解。
如果要在删除用户模型实例时删除所有关联的Notification
实例,请设置on_delete=models.CASCADE
。
recipient = models.ForeignKey(settings.AUTH_USER_MODEL, blank=False, related_name='notifications', on_delete=models.CASCADE)
如果您希望在删除用户模型的实例时保持通知不变,请使用on_delete=models.SET_NULL
。但在这种情况下,您必须在收件人字段上设置null=True
。通知将保留,但不会属于任何用户。
recipient = models.ForeignKey(settings.AUTH_USER_MODEL, blank=False, related_name='notifications', on_delete=models.SET_NULL, null=True)