【问题标题】:'instancemethod' object has no attribute '__getitem__'“instancemethod”对象没有属性“__getitem__”
【发布时间】:2013-03-17 23:31:29
【问题描述】:

我不断收到此错误:

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

我有一个 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)

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

谢谢!

【问题讨论】:

    标签: django django-views


    【解决方案1】:

    问题出在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
    

    【讨论】:

    • 嗯,到目前为止没有运气:我使用:tel = request.POST.get['tel_number'],当我发送帖子数据时,相同的 typeError,键为 'tel_number'
    • 请看清楚。我使用的是() 括号而不是这个[]。所以应该是tel = request.POST.get('tel_number')
    • 从头开始,它起作用了(我应该更仔细地阅读错误,它现在是一个新错误,但我明白了!),感谢您的耐心 Aamir
    • 如果我必须使用 GET 方法通过 ajax 调用发送一个数组...我需要做哪些更改?
    猜你喜欢
    • 2017-02-27
    • 2017-01-16
    • 2014-08-10
    • 1970-01-01
    • 2018-05-09
    • 2015-02-26
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多