【问题标题】:Ideas to implement "vote" ContentType-based app实现“投票”基于 ContentType 的应用程序的想法
【发布时间】:2011-06-13 12:19:30
【问题描述】:

我想创建一个应用程序,允许使用 ContentTypes(如 cmets 框架或文档中的标签示例)对任何模型进行投票(赞许和不许,就像它的问题和答案中的 SO)。

我只是设置了模型和模板标签,可以得到票数等。 让我烦恼的是什么应该是使投票成为可能的最佳方式。

这是投票类:

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。我不确定如何实现这一点,因为模板中的每个模型都没有两个可以投票的表单。

有什么想法吗?

【问题讨论】:

  • 我刚刚发布了一款类似的应用程序:django-valuate。我从 django cmets 框架中获取了它背后的想法。

标签: django content-type


【解决方案1】:

【讨论】:

  • 这正是我想要做的,但要知道我更喜欢自己实现它......你知道,“没有冒险,没有收获”。但我会将它用作某种指南。
猜你喜欢
  • 2015-11-22
  • 2010-11-26
  • 1970-01-01
  • 2010-10-23
  • 2019-03-23
  • 1970-01-01
  • 2012-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多