Question

I am trying to implemet django-updown https://github.com/weluse/django-updown. When I try to add vote trough the admin panel it says Value 1 not a valid choice.

This is the models.py from the application:

_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)

Do you have an idea what could be wrong?

Was it helpful?

Solution 2

At the end, there was no solution for this, so I installed django-ratings https://github.com/dcramer/django-ratings and it works fine. So if you have this kind of issue, I recommend this application.

OTHER TIPS

Your score field is a SmallIntegerField so try using integers instead of strings in your choices tuples and it should work:

_SCORE_TYPE_CHOICES = (
    (-1, 'DISLIKE'),
    (1, 'LIKE'),
)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top