django-vote的完整性错误(关系的新行违反了检查约束num_vote_up_check)

时间:2018-12-15 12:45:37

标签: django vote database-integrity

我正在尝试让django-vote为我的django应用程序工作而失败。投票一旦完成,就无法更改,否则会发生sql错误。同样,一旦添加投票,这不会更新模型的计数。该应用似乎无法正常运行,因为我找不到关于我做错事情的更多信息。

这是我的设置:

#products.models.py
from vote.models import VoteModel
from django.db import models

class tags(VoteModel, models.Model):
    name = models.CharField(max_length=50,  unique=True)

class gymproduct(models.Model):
    tags = models.ManyToManyField(tags, blank=True)
    ....

我希望用户对健身产品的特定标签进行投票。我可以添加标签没问题。但是,当我尝试将api用于django-vote时,事情似乎并没有像宣传的那样起作用。例如:

#debugsqlshell
from products.models import *
from profiles.models import Profile #my custom user model

firsttag = tags.objects.first()
user = Profile.objects.first()

firsttag.votes.up(user.id) #This returns true. 
firsttag.vote_score #This should return one, but returns 0, did the previous vote not count?
firsttag.num_vote_up #This should return one, but returns 0???

firsttag.votes.down(user.id) 
# This breaks sql with the error: 
# IntegrityError: new row for relation "products_tags" violates check 
# constraint "products_tags_num_vote_down_check"

我不知道为什么会收到此IntegrityError错误(我正在使用postgres)。不知道我可能做错了什么。我尝试保存标签,尝试在多方关系的直通模型中添加VoteModel。两者导致相同的结果。有人知道这个套餐吗?还是我应该尝试从头开始编写投票功能?

这是我关于stackoverflow的第一篇文章。我希望我没有做错任何事。

0 个答案:

没有答案