我想从模型中获取对象值。尝试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))
答案 0 :(得分:2)
此行mall=Fin.objects.get(name)
您尚未在视图name
中的任何位置声明place_me
变量,因此未定义。
你在.get
中传递参数的方式也是错误的,它必须是这样的:
mall=Fin.objects.get(name='any name')
# or you can do
mall=Fin.objects.get(user=request.user)