Значение [...] недопустимо, django-updown

Я пытаюсь реализовать django-updown https://github.com/weluse/django-updown. Когда я пытаюсь добавить голос через панель администратора, он говорит, что значение 1 не является правильным выбором.

Это models.py из приложения:

_SCORE_TYPE_CHOICES = (
('-1', 'DISLIKE'),
('1', 'LIKE'),
)

SCORE_TYPES = dict((value, key) for key, value in _SCORE_TYPE_CHOICES)

class Vote(models.Model):
    content_type = models.ForeignKey(ContentType, related_name="updown_votes")
    object_id = models.PositiveIntegerField()
    key = models.CharField(max_length=32)
    score = models.SmallIntegerField(choices=_SCORE_TYPE_CHOICES)
    user = models.ForeignKey(User, blank=True, null=True, related_name="updown_votes")
    ip_address = models.IPAddressField()
    date_added = models.DateTimeField(default=datetime.datetime.now, editable=False)
    date_changed = models.DateTimeField(default=datetime.datetime.now, editable=False)

У вас есть идея, что может быть не так?

2 ответа

Решение

В конце концов, решения для этого не было, поэтому я установил django-рейтинги https://github.com/dcramer/django-ratings и он отлично работает. Так что если у вас есть такая проблема, я рекомендую это приложение.

Ваше поле для оценки SmallIntegerField поэтому попробуйте использовать целые числа вместо строк в ваших кортежах выбора, и это должно работать:

_SCORE_TYPE_CHOICES = (
    (-1, 'DISLIKE'),
    (1, 'LIKE'),
)
Другие вопросы по тегам