2013-03-27 13 views
13

ciśgle ten błąd:„instancemethod” obiekt ma atrybut „__getitem__”

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

z moim konkretnym widokiem na witrynie django Mam zabawy z. Nie mam pojęcia, dlaczego, ale mam wrażenie, że może to być związane ze sposobem pobierania określonego obiektu z modelu.

Błąd występuje tutaj:

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

Mam modelu pracownikowi phone_number jako CharField jako takie:

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) 

Dane request.POST jest wysyłany z aplikacji Android. Wszystko, co chcę zrobić, to pobrać obiekt pracownika, który ma określoną wartość numeru telefonu.

Dziękujemy!

Odpowiedz

16

Problem dotyczy tej linii tel = request.POST.get['tel_number']. Jeśli używasz .get należy podać klucz jako argument:

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

W przeciwnym razie może to zrobić:

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

Hmm, nie ma szczęścia do tej pory: użyłem: tel = request.POST.get ['tel_number'], ten sam błąd typeError, gdy wysyłam dane postu, z kluczem "tel_number" – bluecat

+1

Proszę zobaczyć wyraźnie. Używam nawiasu '()', a nie tego '[]'. więc powinno to być 'tel = request.POST.get ('tel_number')' –

+0

Zarysuj to, zadziałało (powinienem był przeczytać błędy dokładniej, jest to nowy, ale teraz taki, który rozumiem!), dziękuję za twoją cierpliwość Aamir – bluecat

Powiązane problemy