我有这些models
,我整晚都在努力想知道如何保存到Likes
桌子上,但它不会起作用。
class Users(models.Model):
email = models.EmailField()
name = models.CharField(max_length=60)
class Posts(models.Model):
user_id = models.ForeignKey('Users')
content = models.CharField(max_length=480)
class Likes(models.Model):
post_id = models.ForeignKey('Posts', related_name='likes_set')
user_id = models.ForeignKey('Users')
status = models.IntegerField()
说user_id1 = 1
真实存在于表中,post_id11 = 11
也存在,且该用户点击该帖子。
现在我想保存到 Likes 表,这就是我所做的;
user = Users.objects.get(id = user_id1)
post = user.posts_set.get(id = post_id11)
try:
liked = post.likes_set.get(user_id = user_id1)
except Likes.DoesNotExist:
liked = None
if liked:
liked.status = F('status') - 1
liked.save()
total_likes = liked.status
return HttpResponse(total_likes)
else:
post.likes_set.create(user_id = user_id1, post_id = post_id11, status = 1)
post.likes = F('likes') + 1
post.save()
total_likes = post.likes
return HttpResponse(total_likes)
这是错误:
ValueError at /myapp/likeRecorder/
Cannot assign "1": "Likes.user_id" must be a "Users" instance.
我整晚都在谷歌上试图解决这个问题。帮助!