0

モデルからオブジェクト値を取得したい。get()メソッドを試した後、動作させることができませんでした。以下のエラーが発生します。ユーザーに場所の名前を表示するページがあるので、ユーザーが好きな場所を見つけたら、先に進んでフォームに入力します。フォームでは、別の場所から場所の名前を自動的に取得したいと思います。モデル、ユーザーに場所の名前を入力してほしくない。以下は私のコードです

       NameError at /welcome/

       global name 'name' is not defined

モデル

 class Fin(models.Model):
      user=models.ForeignKey(User)
      name=models.CharField(max_length=100)

      def __unicode__(self):
          return self.user


 class Place(models.Model):
      user=models.ForeignKey(User)
      mall=models.ForeignKey(Fin)
      full_name=models.CharField(max_length=100)
      e_mail=models.EmailField(max_length=100)
      phone_no=models.CharField(max_length=100)
      pub_date=models.DateTimeField()

      def __unicode__(self):
          return self.full_name
      class Meta:
         ordering=['-pub_date']

  class PlaceForm(ModelForm):
       class Meta:
         model=Place
         fields=('full_name','e_mail','phone_no')
         exclude=('user','pub_date','mall')

ビュー:

   def place_me(request):
       if request.method=="POST":
          form=PlaceForm(request.POST)
          if form.is_valid():
             data=form.cleaned_data
             newbooks=Place(
                 user=request.user,
                 pub_date=datetime.datetime.now(),
                 mall=Fin.objects.get(name),
                 full_name=data['full_name'],
                 e_mail=data['e_mail'],
                 phone_no=data['phone_no'])
             newbooks.save()
             return HttpResponse('Thanks for choosing themall, we will contact you as soon as possible. Go grab a beer :)')
         else:
            return HttpResponse('Some fields are not filled correctly')
     else:
        return render_to_response('buuk.html',{'PlaceForm':PlaceForm},context_instance=RequestContext(request))
4

1 に答える 1

2

この行は、ビューのどこにも変数mall=Fin.objects.get(name)を宣言していないため、未定義です。nameplace_me

また、引数を渡す方法.getが間違っているため、次のようにする必要があります。

mall=Fin.objects.get(name='any name')
# or you can do
mall=Fin.objects.get(user=request.user)
于 2012-12-30T22:27:07.947 に答える