'instancemethod'对象没有属性'__getitem__'

blu*_*cat 14 django django-views

我一直收到这个错误:

TypeError: 'instancemethod' object has no attribute '__getitem__'
Run Code Online (Sandbox Code Playgroud)

随着我对django网站的特殊观点,我正在玩弄.我不知道为什么,但我感觉它可能与我从模型中检索特定对象的方式有关.

这里发生错误:

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

我有一个Employee模型,phone_number如下所示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)
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Aam*_*nan 16

问题出在这一行tel = request.POST.get['tel_number'].如果您正在使用.get,则应将密钥作为参数传递:

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

否则你可以这样做:

tel = request.POST['tel_number'] # raise KeyError Exception if key is not present in dict
Run Code Online (Sandbox Code Playgroud)