如何使用 django 从后端到前端获取 json 响应对象?

时间:2021-05-06 16:07:49

标签: json django ajax django-models django-views

我尝试将 json 对象从 django 视图发送到 django 模板,但这是作为字符串而不是 json 对象。 enter image description here

这个对象(json_follower)正在从视图发送到 django 模板,我正在安慰它,如显示的带有图像截图的输出。

class UserProfileFollowToggle(LoginRequiredMixin,View):
    login_url = '/accounts/login/'
    def post(self, request):
            username_to_toggle = request.POST.get("user_toggle")
            json_follower = None
            profile_, is_following,json_follower = UserProfile.objects.toggle_follow(request.user, request.user.id ,username_to_toggle,json_follower)
            return JsonResponse({'result': is_following, 'json_follower':json_follower}) 

在内部视图中,我从模型管理器继承了 json_follower,正如您在下面给出的代码中看到的那样。

def some_view(username_to_toggle):
    print(username_to_toggle,"User to togle")
    user = User.objects.get(username__iexact=username_to_toggle)
    print(user,"User object")
    user_seri = serializers.serialize('json', [user])
    user_json = json.dumps(user_seri)
    print(user_json,"User json")
    return user_json

class ProfileManager(models.Manager):
    def toggle_follow(self, request_user,user_id, username_to_toggle,json_follower):
        profile_ = UserProfile.objects.get(user__username__iexact=request_user.username)
        is_following = False
        follower = profile_.follower.filter(username__iexact=username_to_toggle).first()
        
        if follower:
            profile_.follower.remove(follower.id)
            actor = User.objects.get(pk=user_id)
            user = User.objects.get(username=username_to_toggle)

            json_follower = some_view(username_to_toggle) #this someview function is written on the top of this model.
        else:
            new_follower = User.objects.get(username__iexact=username_to_toggle)
            profile_.follower.add(new_follower.id)
            actor = User.objects.get(pk=user_id)
            user = User.objects.get(username=username_to_toggle)
            notify.send(actor, recipient=user, verb='follow you')

            json_follower = some_view(username_to_toggle) #this someview function is written on the top of this model.
            is_following = True   

        return profile_, is_following,json_follower

0 个答案:

没有答案