我正在尝试创建一个论坛网站,人们可以发布和这些职位可以得到投票。问题是一个用户可以多次向上投票任何帖子。我该如何解决这个问题,以便用户只能在某个帖子上投票一次
我试过创建一个多域,但似乎无法正常工作
class Product(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
url = models.TextField()
votes_total = models.IntegerField(default=1)
image = models.ImageField(upload_to='images/')
icon = models.ImageField(upload_to='images/')
pubdate = models.DateTimeField()
voters = models.OneToManyField('PostVoter')
class PostVoter(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
def upvote(request, product_id):
if request.method == 'POST':
product = get_object_or_404(Product, pk=product_id)
postvoters = PostVoter.objects.all()
if postvoters.filter(user=request.user).exists():
return redirect('home')
else:
product.votes_total += 1
PostVoter.objects.create(user=request.user)
product.save()
return redirect('/products/' + str(product.id))
我想让这项工作,使多个用户可以喜欢一个职位和一个用户可以喜欢多个职位,但一个用户可以喜欢一个特定的职位只有一次
也许你应该这样定义你的模型:
并更新视图:
相关问题 更多 >
编程相关推荐