4

djangoのユーザーモデルを拡張して、場所や雇用者など、他のいくつかの変数を含めました。今、私は次のフィールドを持つフォームを作成しようとしています:

First name (from User)
Last name (from User)
Location (from UserProfile, which extends User via a foreign key)
Employer (also from UserProfile)

モデルフォームを作成しました:

from django.forms import ModelForm
from django.contrib import auth
from alert.userHandling.models import UserProfile

class ProfileForm(ModelForm):
    class Meta:
#       model = auth.models.User # this gives me the User fields
        model = UserProfile # this gives me the UserProfile fields

それで、私の質問は、ユーザーモデルまたはUserProfileモデルのどちらからのものであるかにかかわらず、すべてのフィールドにアクセスできるModelFormを作成するにはどうすればよいですか?

これが理にかなっていることを願っています。ご不明な点がございましたら、お気軽にお問い合わせください。

4

2 に答える 2

3

2 つのモデル フォーム (User 用と UserProfile 用) を作成するか、すべてのフィールドを含むカスタム フォームを作成してビューにディスパッチすることができます。

from django import forms

class ContactForm(forms.Form):
    first_name = forms.CharField()
    last_name = forms.CharField()
    location = forms.CharField()
    employer = forms.CharField()
于 2010-03-24T22:10:36.880 に答える
0

できません。ModelFormは、そのすべてのフィールドが 1 つのモデルから取得されることを期待しています。モデルの子を作成Formし、モデルからフィールド定義をプルします。

于 2010-03-24T22:10:59.580 に答える