Blogumda olduğu gibi iyi çalışıyorum. Sorun var, müdürü nasıl kullanacağımı bilmiyorum. Sanırım bu benim ana hatam. Bir aracı modeli belirten ManyToManyField üzerinde add() kullanılamaz. Bunun yerine Posts.LikeTimestamp'ın Yöneticisi'ni kullanın.Ara bir model belirten ManyToManyField üzerinde add() kullanılamaz. .LikeTimestamp's Manager yerine
benim modeller:
class Like(models.Model):
class Meta:
db_table = 'like'
post = models.OneToOneField(Post, null=True)
liked_users = models.ManyToManyField(User, blank=True, through='LikeTimestamp')
likes = models.IntegerField(default=0, blank=True)
class LikeTimestamp(models.Model):
class Meta:
db_table = 'liketimestamp'
timestamp = models.DateTimeField(auto_now=True, auto_now_add=False)
like = models.ForeignKey(Like)
user = models.ForeignKey(User)
görüşlerim:
@login_required
def like_post(request, comments_id):
try:
like, created = Like.objects.get_or_create(comments_id=comments_id)
like.post = Post.objects.get(id=comments_id)
if request.user in like.liked_users.all():
like.liked_users.remove(request.user)
like.likes -= 1
else:
like.liked_users.add(request.user)
like.likes += 1
like.save()
except ObjectDoesNotExist:
raise Http404
return redirect(request.META.get('HTTP_REFERER'))