0

我正在尝试实现 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)

你知道有什么问题吗?

4

2 回答 2

3

您的 score 字段是一个SmallIntegerField所以尝试在您的选择元组中使用整数而不是字符串,它应该可以工作:

_SCORE_TYPE_CHOICES = (
    (-1, 'DISLIKE'),
    (1, 'LIKE'),
)
于 2012-06-15T12:14:31.870 回答
0

最后,没有解决方案,所以我安装了 django-ratings https://github.com/dcramer/django-ratings并且工作正常。所以如果你有这种问题,我推荐这个应用程序。

于 2012-06-21T09:13:57.030 回答