Невозможно получить данные JSON на консоли
Пытаюсь консольно занести данные в журнал перед выводом на страницу, но получаю 404 not found или attributeName 'Porfile' не имеет имени пользователя в качестве атрибута.
Я ноб, когда дело доходит до JSON, я только недавно начал возиться с ним, пожалуйста, помогите, это для задания
JS:
$.ajax({
type: 'GET',
url: 'my-profile-json/',
success: function(response){
console.log(response);
},
error: function(error){
console.log(error);
}
});
Urls:
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
from . import views
from .views import (
post_view_json,
profile_test_view,
MyProfileView,
MyProfileData,
)
urlpatterns = [
path("", views.index, name="index"),
path("login", views.login_view, name="login"),
path("logout", views.logout_view, name="logout"),
path("register", views.register, name="register"),
path("test", profile_test_view, name="test"),
path("my/", MyProfileView.as_view(), name="my-profile-view"),
path("my-profile-json/", MyProfileData.as_view(), name="my-profile-json"),
# endpoints
path("posts-json/", post_view_json, name="posts-view-json")
]
Виды
from django.contrib.auth import authenticate, login, logout
from django.db import IntegrityError
from django.http import HttpResponse, HttpResponseRedirect
from django.http.response import JsonResponse
from django.shortcuts import render
from django.urls import reverse
from django.core import serializers
from .models import User, Post, Profile
from django.views.generic import TemplateView, View
class MyProfileData(View):
def get(self, *args, **kwargs):
profile = Profile.objects.get(user=self.request.user)
qs = profile.get_proposals_for_following()
profiles_to_follow_list = []
for user in qs:
p = Profile.objects.get(user__username=user.username)
profile_item = {
'id': p.id,
'user': p.username,
'avatar': p.avatar.url,
}
profiles_to_follow_list.append(profile_item)
return JsonResponse({'pf_data': profiles_to_follow_list})
class MyProfileView(TemplateView):
template_name = 'network/my_profile.html'
Здесь вы используете p.username, но наверняка это должно быть p.user.username:
profile_item = {
'id': p.id,
'user': p.username,
'avatar': p.avatar.url,
}