forms.ChoiceFieldの検証に問題があります。私は2つのテーブル/モデルを持っていますDjangoフォーム検証モデルの選択
class City(models.Model):
...
name = models.CharField(max_length=64)
...
class ShoppingCenter(models.Model):
...
name = models.CharField(max_length=64)
city = models.ForeignKey(City)
人々は都市やショッピングセンターで活動を登録できます。しかし、多くの都市やさらに多くのショッピングセンターがあるため、私はショッピングセンターの選択肢を選択した都市に限定したいと考えています。私は都市名のCharFieldと空のChoiceFieldを持つフォームを作成しました。
ユーザーがCharFieldにajax/jqueryオートコンプリートを使用して入力した後、ajax/jqueryを使用してShoppingCenter ChoiceFieldの値を入力します。
これはすべてうまくいくようです。私は有効な都市を入力し、JavaScriptはShoppingCenterの選択フィールドのオプションを入力します。
ただし、このフォームを検証する場合は失敗します。私は取得しています:
form_errors
{ 'shopping_centre_id':[u'Select有効な選択肢を。 1]は有効な選択肢の1つではありません。]]
1は有効なショッピングセンターIDですが、データベースから選択されました。
私は別のMultipleChoiceFieldが同じフォームであり、うまく動作しています。 2つの唯一の違いは、標準のDjangoを使用してMultipleChoiceFieldが生成され、javascript(ajax + django)を使用してChoiceFieldが作成されることです。
今のところ私はself._errorsからエラーを取り除き、shopping_centre_idの値をcleaned_dataに追加する独自のクリーンメソッドを定義して回避策を見つけました。
検証エラーの原因は何ですか?
ModelChoiceFieldをショッピングセンターに使用することはできません。これはユーザーが入力する都市に依存するため、恐れがあります。ショッピングのリストを表示できないため、センター。 – Henri