我在 django 中有一个模型,它具有带有用户模型的外键。
class News(models.Model):
user = models.ForeignKey(AUTH_USER_MODEL, on_delete=models.SET(???))
message - models.TextField()
因此,当任何用户帐户从数据库中删除时,新闻表中的条目也会根据用户删除。所以我希望当删除任何用户帐户时,我需要使用在用户字段中设置他/她的全名'on_delete=models.SET(???)'
Example:
如果我有这样的用户:first_name = 'Neeraj' 且 last_name='Kumar'
当我想删除该用户帐户时,我想在新闻表中保存他的名字。
user
领域在News
模型映射到User
模型实例。
您不能将字符串分配给该字段。您只能分配 null aUser
模型实例。
您必须提供替代用户来代替已删除的用户。因此,要么保留一个用户进行替换,要么在删除时创建一个用户。中解释得很清楚docs https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.SET.
您可以做的一件事就是添加一个新的name
场到News
模型并在创建时填充它News
实例。
class News(models.Mode):
user = models.ForeignKey(AUTH_USER_MODEL, on_delete=models.SET_NULL)
name = models.CharField()
def save(self, *args, **kwargs):
if not self.id:
self.name = self.user.first_name + self.user.last_name
super(News, self).save(*args, **kwargs)
现在,当User
被删除,user
字段设置为 NULL 并且name
字段包含所需的名称信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)