实施“投票”基于ContentType的应用程序的想法

时间:2011-01-22 00:35:33

标签: django content-type

我想创建一个应用程序,允许使用ContentTypes(如文档中的评论框架或标签示例)对任何模型进行投票(竖起大拇指和竖起大拇指,非常像SO中的问题和答案)。 / p>

我只是设置模型和模板标签,可以获得投票数等。 让我感到困惑的是什么应该是投票的最佳方式。

这是投票类:

class Vote(models.Model):
    TYPES_VOTE = (
        ( 'POS', 'Positive' ),
        ( 'NEG', 'Negative' ),
    )

    type            = models.CharField(max_length=3, choices=TYPES_VOTE, default=None)
    content_type    = models.ForeignKey(ContentType)
    object_id       = models.PositiveIntegerField(db_index=True)

我写了一个简单的视图,它接收内容类型,对象ID和投票类型(向上或向下)。但我不知道调用此视图的最佳方法。一些可能性:

  • 通过GET请求投票,urls.py将捕获请求并传递正确的内容类型(例如:url(r'^question/(?P<question_id>)/vote/(?P<vote_type>)/$', voting_views.vote, {'content_type' : ContentType.objects.get_for_model(Question()) }, name='vote_question'),

  • 通过POST请求投票,为具有对象的ContentType和投票类型的投票创建表单。我不确定如何实现这一点,如果模板中的每个模型都有两个表格可以投票。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)