2

ですから、私はまだDjangoの初心者であり、次のことを行う方法を考えていました。

それで、私が以下のコードのようなものを持っているとしましょう:

class UserProfile(models.Model):
    #Some fields
class UserProfileOther(models.Model):
    #Some other fields that I want in another table for organization
    user_profile = models.OneToOneField(UserProfile)

上記の両方のモデルを含むフォームを作成するにはどうすればよいですか?

4

3 に答える 3

3

この種の問題は、インラインフォームセットの目的です。

于 2012-07-17T05:27:36.457 に答える
2

2つの別々のModelFormクラスを作成できます。しかし、あなたの見解では、それらのインスタンスにプレフィックスを追加する必要があります。

def viewname(request):
    if request.method == 'POST':
        form1 = forms.YourForm(request.POST, prefix="form1")
        form2 = forms.YourOtherForm(request.POST, prefix="form2")
        if form1.is_valid() and form2.is_valid():
            # process valid forms
    else:
        form1 = forms.YourForm(prefix="form1")
        form2 = forms.YourOtherForm(prefix="form2")

    ....

プレフィックスを使用すると、類似した名前のフィールドが混同されないようになります。

于 2012-07-17T00:43:37.527 に答える
0

私のやり方は、最初のモデルに基づいてフォームを作成し、次に最初のフォームを継承する2番目のモデルに基づいてフォームを作成することでした。意味:

クラスUserProfileForm(ModelForm):..。

クラスUserProfileOtherForm(UserProfileForm):..。

そして、UserProfileOtherFormフォームテンプレートにを渡します。それは私のために働いた。より簡単なアプローチがあるかどうかはわかりません。

于 2012-07-16T21:49:34.153 に答える