2016-05-03 5 views
4

は、私がモデルを持っていると言います私は次のオプションを持つ選択ウィジェットを取得します:カスタムオーダー

- Yes 
- No 
- I don't know 
- I don't want to answer 

問題は私が好きだということですが選択肢の最初のオプション(「最も選択されたもの」)であることはわかりません。

このカスタムオーダーを使用して選択セットを持つ選択ウィジェットを取得する(またはクエリーセットを取得する)ことは可能ですか(最初のオプションを入れるだけですか?)

Javascriptを使用して解決する方法がありますが、Djangoを使用して解決することをお勧めします。

答えて

1

オプションモデルの整数フィールドに別のフィールドを追加します。そしてあなたの質問に。新しいフィールドでクエリを注文します。管理パネルを使用してこれらのオプションの順序を変更できるようになります。

2

ご注文のフィールドをモデルに追加し、それによってクエリセットを注文することができます。

class Option(models.Model): 
    name = models.CharField(max_length=60) 
    ordering = models.IntegerField() 

my_model_form_field = forms.ModelChoiceField(
    queryset=Option.objects.all().order_by('ordering'), 
    widget=forms.Select()) 

あなたがモデルのorderingオプションを設定した場合、あなたもorder_by()を必要としません。

class Option(models.Model): 
    name = models.CharField(max_length=60) 
    ordering = models.IntegerField() 
    class Meta: 
     ordering = ['ordering'] 
関連する問題