Как правильно создать json-ответ вошедшего пользователя для react

Я начал пробовать react и попытался просто получить информацию о вошедшем пользователе, но, похоже, это не работает. У меня есть представление Django для отображения данных пользователя:

def user_details_view(request, *args, **kwargs): #REST API for detailing some basic info about the user that is using the system at the moment
    current_user = request.user
    id = current_user.id
    try:
        obj = CustomUser.objects.get(id=id)
        data =obj.serialize()
    except:
        #data['message'] = "Not Found"
        status = 404
    return JsonResponse(data)

Я установил это представление в urls и если я обращаюсь к нему, то получаю нужные мне данные. Однако, когда я пробую его на react, я получаю внутреннюю ошибку сервера. Вот код на данный момент:

function loadUserInfo(callback){
  const xhr = new XMLHttpRequest();
  const method = 'GET';
  const url = "http://127.0.0.1:8000/userdetails/";
  const responseType = "json";
  xhr.responseType = responseType; // Let the xhr request know that its getting a json 
  xhr.open(method, url); //This opens the request with the method and url entered
  xhr.onload = function(){
    console.log("This is the response: ",xhr.response)
    callback(xhr.response, xhr.status)
  }
  xhr.onerror = function(){
    callback({"message":"The request was an error"}, 400)
  }
  xhr.send();//Trigger that request
}
function App() {
  const [info, setinfo] = useState(null)
  useEffect(()=>{
    const myCallBack = (response,status)=>{
      console.log(response,status)
      if (status === 200){
        setinfo(response)
      }
    }
    loadUserInfo(myCallBack)
  },[])

Я разобрался с cors и allowed hosts в файле settings.py, поэтому я не получаю этих проблем. Что я получаю в журнале сервера django, так это:

UnboundLocalError: local variable 'data' referenced before assignment

Я удалил блоки try, так как они могут быть немного лишними в настоящее время, но я получаю другую ошибку:

Restaurant_Project/venv/lib/python3.9/site-packages/django/db/models/query.py", line 435, in get
    raise self.model.DoesNotExist(
accounts.models.CustomUser.DoesNotExist: CustomUser matching query does not exist.

Эта же ошибка возникает, если я обращаюсь к урлу просмотра, не войдя в систему. Я хотел бы знать, какой лучший способ передать информацию о пользователе, которую я хочу получить в реакции.

Причина UnboundLocalError заключается в том, что данные не определяются, если происходит исключение.

Измените строки на:

def user_details_view(request, *args, **kwargs): #REST API for detailing some basic info about the user that is using the system at the moment
    current_user = request.user
    id = current_user.id
    data = dict()
    status = 200
    try:
        obj = CustomUser.objects.get(id=id)
        data = obj.serialize()
    except:
        data['message'] = "Not Found"
        status = 404
    return JsonResponse(data, status=status)
Вернуться на верх