【发布时间】:2016-08-05 16:07:14
【问题描述】:
这是我想要做的:
class Item(TimestampedModel):
....
def delete(self, *args, **kwargs):
# Other users have linked to this item, delete the link
if UserItem.objects.filter(item=self).count() > 1:
# TODO Delete the UserItem linking the current User to this Item
# No one else has linked to this item, delete the item
else:
super(Item, self).delete(*args, **kwargs)
class UserItem(TimeStampedModel):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
item= models.ForeignKey(Item, on_delete=models.CASCADE)
【问题讨论】:
-
这种事情(用户是已知的)通常在视图级别完成。
-
我想了很多,但希望在模型中保留这个删除逻辑
-
你可以破解 save 方法,在 kwargs 中传入用户并在调用 super 之前弹出它,但你仍然需要从视图级别传入用户。
标签: django django-models m2m