0

それぞれのモデルフォームに含まれている次のモデルがあります ( https://docs.djangoproject.com/en/1.5/topics/forms/modelforms/の ModelForm ガイドに従っています):

from django.db import models
from django.contrib.auth.models import User
from django.forms import ModelForm

class Person(models.Model):
    user = models.OneToOneField(User)
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    birth_date = models.DateField()
    address = models.CharField(max_length=100)
    email = models.CharField(max_length=50)

    class Meta:
        abstract = True

class Trainer(Person):
    team_name = models.CharField(max_length=50)

class Trainee(Person):
weight = models.DecimalField(max_digits=5,  decimal_places=2)
height = models.DecimalField(max_digits=3,  decimal_places=2)

class TrainerForm(ModelForm):
    class Meta:
        model = Trainer

class TraineeForm(ModelForm):
    class Meta:
        model = Trainee

今、ビューのフォームを機能させようとしています。もう一度、https://docs.djangoproject.com/en/1.5/topics/forms/modelforms/から例を取り上げました

# Create your views here.
from django.http import HttpResponse
from django.forms.models import modelformset_factory

def index(request):
    return HttpResponse("Hello, world. You're at the users index.")

def trainer_signup(request):
    TrainerFormSet = modelformset_factory(Trainer)
    if request.method == 'POST':
        formset = TrainerFormSet(request.POST, request.FILES)
        if formset.is_valid():
            formset.save()
            # do something.
    else:
        formset = TrainerFormSet()
    return render_to_response("forms.html", {
        "formset": formset,
    })

私が得るエラーは次のとおりです。

global name 'Trainer' is not defined

ありがとう!

4

1 に答える 1

1

問題は、次のコード行にあります。

TrainerFormSet = modelformset_factory(Trainer)

彼は何が何であるかを知らないからTrainerです。モデルをビューにインポートする必要があります。これを views.py ファイルの先頭に追加すると、すべてが機能します。

from models import *
于 2013-11-02T11:48:22.747 に答える