“instancemethod”对象有没有属性“__getitem__”

问题描述:

我不断收到此错误:“instancemethod”对象有没有属性“__getitem__”

TypeError: 'instancemethod' object has no attribute '__getitem__' 

与我的Django的网站我与玩弄特定视图。我不知道为什么,但我有一种感觉,它可能与我从模型中检索特定对象的方式有关。

该错误发生的位置:

def myview(request): 
    if request.method == 'POST': 
     tel = request.POST.get['tel_number'] 
     person = get_object_or_404(Employee,phone_number=tel) # HERE 

我有phone_number一个Employee模型作为CharField这样:

class Employee(models.Model): 
    first_name = models.CharField(max_length=30) 
    last_name = models.CharField(max_length=30) 
    phone_number = models.CharField(max_length=10) 

的request.POST数据从一个机器人应用程序发送。我想要做的就是检索具有特定phone_number值的Employee对象。

谢谢!

问题出在这一行tel = request.POST.get['tel_number']。如果你正在使用.get你应该通过密钥作为参数:

tel = request.POST.get('tel_number') # if key is not present by default it will return None 

否则,你可以这样做:

tel = request.POST['tel_number'] # raise KeyError Exception if key is not present in dict 
+0

嗯,至今没有运气:我用:TEL = request.POST.get ['tel_number'],同样typeError当我发送发布数据时,用'tel_number'键 – bluecat 2013-03-27 18:26:35

+1

请看清楚。我使用'()'括号而不是这个'[]'。所以它应该是'tel = request.POST.get('tel_number')' – 2013-03-27 18:30:58

+0

从头开始,它工作了(我应该更仔细地阅读这些错误,现在是一个新的错误,但我明白了!),谢谢您耐心等待Aamir – bluecat 2013-03-27 19:07:54