Django-创建或删除对象

Django-创建或删除对象,django,Django,我想知道在Django中创建(如果不存在)或删除(如果存在)对象的最佳方式是什么 我知道我可以做这样的事情: if Like.objects.filter(user=request.user, post=post).exists(): Like.objects.filter(user=request.user, post=post).delete() else: Like.objects.create(user=request.user, post=post) 有没有更好的方法

我想知道在Django中创建(如果不存在)或删除(如果存在)对象的最佳方式是什么

我知道我可以做这样的事情:

if Like.objects.filter(user=request.user, post=post).exists():
    Like.objects.filter(user=request.user, post=post).delete()
else:
    Like.objects.create(user=request.user, post=post)

有没有更好的方法,例如Django提供的
get\u或\u create
方法?

如果是单个对象,请执行以下操作:

try:
    Like.objects.get(user=request.user, post=post).delete()
except Like.DoesNotExist
    Like.objects.create(...)

谢谢,我在找这样的东西。看起来比我所拥有的更加简洁和可读。@ Dalvor注意到为DB删除了一个沉重的动作,所以你可能需要考虑使用更新而不是删除/创建有趣的需求。