1

CommonInfo名前、メール、パスワードなどの小道具で呼び出される基本モデルクラスがあります。

次に、プロフィール画像、ユーザー名、レピュテーションと呼ばれる整数フィールドなどを持つUserモデル ( のサブクラス) を作成します。CommonInfo

ここで、評判フィールドなしで登録用のフォームを表示したいので、ビュー関数は次のようになります。

def reg(request):
    form = modelform_factory(User, exclude=('reputation'))
    return render(request, 'reg.html', {
        'form': form,
    });

しかし問題は、フォーム内のフィールドがモデル (名前、電子メール、パスワード、プロフィール画像、ユーザー名) と同じように並べられていることです。

これらのフィールドを並べ替えたい (最初にユーザー名、次に名前と電子メールを配置する) が、モデルとフォームが非常に似ているため、このフォームのクラスを作成したくありません (唯一の違いは評判フィールドです)。 )

どうすればこれを達成できますか?

4

1 に答える 1

1

これを行う最も簡単な方法は次のとおりです。

class RegForm(forms.ModelForm):
    class Meta:
       model=User
       fields=['username', 'name', 'email' ...]
于 2013-03-10T00:56:07.097 に答える