Ошибка целостности с django-голосом (новая строка для отношения нарушает проверочное ограничение num_vote_up_check) - PullRequest
0 голосов
/ 15 декабря 2018

Я пытаюсь и не могу заставить django-voice работать для моего приложения 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-голосования, кажется, что все работает не так, как рекламируется.Например:

#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.Надеюсь, я не сделал ничего плохого.

...