@tarp20

TypeError: 'NoneType' object is not subscriptable. Где ошибка приложении Django?

TypeError: 'NoneType' object is not subscriptable

if request['user_type']=='driver' and not Driver.objects.filter(user_id = user.id):
TypeError: 'NoneType' object is not subscriptable

from TarFoodApp.models import Customer,Driver

def create_user_by_type(backend , user , request , response , *args, **kwargs):
    if backend.name == 'facebook':
        avatar = 'http://graph.facebook.com/%s/picture?type=large' % response['id']
    if request['user_type'] =='driver' and not Driver.objects.filter(user_id = user.id):
        Driver.objects.create(user_id=user.id,avatar=avatar)
    elif not Customer.objects.filter(user_id=user.id):
        Customer.objects.create(user_id=user.id, avatar=avatar)


ошибка скорее всего в request['user_type']=='driver' так как убираю этот код то работает

запрос высылаю с POSTMAN

5f1731058b88c985082692.png

проверяю по параметру 'user_type'

если тут все правильно где может быть ошибка ?

если нужно скину еще скрины
задаю первый раз вопрос подобного типа))
  • Вопрос задан
  • 870 просмотров
Решения вопроса 1
@tarp20 Автор вопроса
решение

def create_user_by_type(backend , user , response , *args, **kwargs):
    request = backend.strategy.request_data()

    if backend.name == 'facebook':
        avatar = 'http://graph.facebook.com/%s/picture?type=large' % response['id']
    if request['user_type'] == 'driver' and not Driver.objects.filter(user_id = user.id):
        Driver.objects.create(user_id=user.id,avatar=avatar)
    elif not Customer.objects.filter(user_id=user.id):
        Customer.objects.create(user_id=user.id, avatar=avatar)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@mrxor
Simple is better than complex
Воспользуйтесь дебаггером и вы увидите, что у вас либо request, либо юзер равен None.
Ответ написан
alternativshik
@alternativshik
request['user'] нет такого, есть request.user не помешал бы полный код вьюхи или где там ошибка эта
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы