2012-03-27 9 views
0

私が持っている場合:Django:フォームフィールドとモデルフィールドの間の論理マッピングを達成する方法は?

class MyForm(ModelForm): 
    class Meta: 
     model = MyModel 
    generic_field = CharField() 

class MyModel(models.Model): 

    field_x  = models.CharField(unique=True, null=True, blank=True) 
    field_y  = models.CharField(unique=True, null=True, blank=True) 
    field_z  = models.CharField(unique=True, null=True, blank=True) 

とビューで:

if request.method == 'POST': 
    my_form = MyForm(
    {'field_x': generate_field_x(request.POST['generic_field']), 'field_y': generate_field_y(request.POST['generic_field']), 
    'field_z': generate_field_z(request.POST['generic_field']), 
    }, 
    request.POST) 

これが正しいモデルフィールド上にgeneric_fieldマーシャリングするために適しています。この問題は、検証エラーがある場合に発生します。モデル検証エラー(field_x/y/z)をgeneric_fieldに元に戻す方法を教えてください。目標は、ユーザーがgeneric_field、validation、およびallとシームレスに対話できるようにすることです。

免責事項:1.私はDjangoを新しくしています。plsは私の投稿の不器用さを許します。 2.私は周りを掘り、レンガの壁を打ちました。おそらく、私はこれを適切にフレーズする方法を知らないからです。助けてください/私を正しい方向に向ける。

答えて

1

あなたの質問は少し曖昧ですが、create a custom fieldがモデルの複数の具体的なフィールドにマップされているように思えますが、フォーム内には1つの存在があります。

+0

応答ありがとうございました、Ignacio。私が達成しようとしているのは、フォーム上に非永続フィールドを持たせることです(generic_field)。その内容はユーザーがフォームをPOSTしたときにモデルフィールド(field_x、field_y、field_z)にプログラムで割り当てます。生成されたフィールドエラーは非永続的な形式になります。 –

+0

最後の行は、 "...任意の生成されたフィールドエラーを非永続フォームフィールドに改造したい" –

+0

しかし、*なぜ*それをしたいですか?あなたが解決しようとしている問題は何ですか?ほぼ確実に良い方法があります。 –

関連する問題