2011-12-15 12 views
1

複数の基準で評価したいコンテンツがあります。
は、この種のモデルを想像:Django - 複数の基準に対する評価:モデルFormset?

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() 

ユーザーがコンテンツを表示するページがあります。彼はまたのcriterias上のコンテンツを評価することができます。このページから

Rating Criterias

を設定する質問は以下のとおりです。あなたは、この目的のためにModel Formsetを使用する
勧めますか?
評価を投稿するには、単純なAjaxフォームを使用する必要がありますか?
何故これを行う必要がありますか?

+0

は、 'ContRate.crit'' Criteria'の外部キーですか? 'DubCrit'とは何ですか? – Stan

+0

申し訳ありません、それは 'Criteria'です、私はそれを変更しました –

答えて

1

my_formset.is_valid()my_formset.save()も使用しませんが、このタイプの問題にはmodel formsetを使用しますが、テンプレートのビューとレンダリングでフォームの作成が容易になるためです。 必要は形式プレフィックスなどと心配する

(星のクリックで発射)onclickイベントにごAjaxコールContRatepk(存在する場合)でビューを呼び出し、パラメータとしてrate必要があります。

ビューは、これらのパラメータwhith ContRateForm(以前のmodelformset_factoryで使用したのと同じ)をインスタンス化ModelForm検証およびデータベースの挿入/更新の通常のメカニズムを使用し、最終的にjsonレスポンスをレンダリングします。

関連する問題