Джанго - Рейтинг по нескольким критериям: модель Formset? - PullRequest
1 голос
/ 15 декабря 2011

У меня есть контент, который я хотел бы оценить по нескольким критериям.
Представьте себе такую ​​модель:

class Content(models.Model):
  name = models.CharField(max_length=50)

class Criteria(models.Model):
  name = models.CharField(max_length=50)
  content = models.ForeignKey(Content)

class ContRate(models.Model):
  user = models.ForeignKey(User, help_text="Who rated ?")
  crit = models.ForeignKey(Criteria)
  rate = models.DecimalField()

У пользователя есть страница с контентом.
На этой странице он также может оценить содержание по критерию

Rating Criterias

Вопрос:
Вы предлагаете использовать Model Formset для этой цели?
Или я должен сделать простую форму Ajax для публикации рейтингов?
Любой, почему я должен сделать это?

1 Ответ

1 голос
/ 15 декабря 2011

Я бы использовал модель formset для такого рода проблем, хотя вы не собираетесь использовать my_formset.is_valid() и my_formset.save(), а потому что это упрощает построение форм в представлении и рендеринг в шаблоне.,Не нужно беспокоиться о префиксах формы и т. Д.

Ваш Ajax вызов по событию onclick (запускается нажатием на звездочку) должен вызывать представление с ContRate pk (еслиприсутствует) и rate в качестве параметров.

Представление будет создавать ContRateForm (то же самое, что использовалось в предыдущем modelformset_factory) с этими параметрами, использовать обычные механизмы проверки ModelForm и базы данных.вставить / обновить и, наконец, обработать ответ json.

...