前提,多对多关系如下:
class ArticlePost(models.Model):
users_like = models.ManyToManyField(User,related_name='articles_like',blank=True) #点赞功能
建立关系,删除关系,代码如下;
@csrf_exempt
@require_POST
@login_required(login_url='/account/login/')
def like_article(request):
article_id = request.POST.get('id')
action = request.POST.get('action')
if article_id and action:
try:
article = ArticlePost.objects.get(id=article_id)
if action == 'like':
article.users_like.add(request.user)
return HttpResponse('1')
else:
article.users_like.remove(request.user)
return HttpResponse('2')
except:
return HttpResponse('no')
官方文档说明:
https://docs.djangoproject.com/zh-hans/2.1/ref/models/relations/
如果不同对象之间建立了一对多或者多对多的关联关系,那么就可以使用add(*objs, bulk=True)方法增加属性的值从而建立两个对象的关系。
如果是相反操作,就用remove(),即把相关联的对象的关系删除。
网友评论