После расширения модели User в django, как вы создаете ModelForm? - PullRequest
4 голосов
/ 25 марта 2010

Я расширил модель User в 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

Итак, мой вопрос, как я могу создать ModelForm, который имеет доступ ко всем полям, будь то из модели User или модели UserProfile?

Надеюсь, это имеет смысл. Я буду рад уточнить, если есть какие-либо вопросы.

Ответы [ 2 ]

3 голосов
/ 25 марта 2010

Вы можете создать две формы модели (одну для пользователя и одну для пользовательского профиля) или создать пользовательскую форму со всеми вашими полями и отправить их в виде.

from django import forms

class ContactForm(forms.Form):
    first_name = forms.CharField()
    last_name = forms.CharField()
    location = forms.CharField()
    employer = forms.CharField()
0 голосов
/ 25 марта 2010

Вы не можете. ModelForm ожидает, что все его поля будут взяты из одной модели. Создайте дочерний элемент Form и извлеките определения полей из моделей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...