Я хочу создать приложение, позволяющее голосовать за любую модель (большой палец вверх и большой палец вниз, почти как SO в своих вопросах и ответах), используя ContentTypes (например, структуру комментариев или примеры тегов в документах).
Я просто настроил модели и ярлыки шаблонов, можно получить количество голосов и т. Д. Меня беспокоит то, что должно быть лучшим способом сделать голосование возможным.
Это голосованиекласс:
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)
Я написал простое представление, которое получает тип контента, идентификатор объекта и тип голосования (вверх или вниз).Но я не знаю, как лучше назвать это мнение.Некоторые возможности:
Голосовать только 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 для объекта и типа голосования.Я не уверен, как реализовать это, не имея двух форм для каждой модели в шаблоне, за который можно проголосовать.
Есть идеи?