我尝试将 json 对象从 django 视图发送到 django 模板,但这是作为字符串而不是 json 对象。
这个对象(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