Итак, я создал сайт социальной сети в django, и вот как мне удалось принимать запросы на добавление в друзья и показывать сообщения друзей на домашней странице.
Не лучше ли выполнить эту операцию в файле models.py, создать функцию и вызвать ее в представлениях с помощью форм django? Меня беспокоит безопасность
def home(request):
if request.user.is_authenticated:
people = []
posts = []
for eachs in request.user.friend_requests.all():
person_prof = User.objects.get(id=eachs.current_id)
people.append({'id':person_prof.id, 'profile':person_prof.profile, 'picture':person_prof.profile.picture.url, 'isfriend':False, 'sent':False, 'rec':True})
for friend in request.user.friends.all():
user = User.objects.get(id=friend.friend_id)
for post in user.post.all():
posts.append({'body':post.body, 'image':post.image.url, 'created':post.created, 'fr_name':user.profile.wholename(),'user_id':user.id, 'pr_pic':user.profile.picture.url,'post_id':post.id, 'comments':[ {'comment':comment.comment, 'user':comment.user} for comment in post.comments.all()]})
return render(request, 'newsfeed.html',{'people':people,'posts':posts})
else:
return render(request, 'landing_page.html',{})
Здесь пост = [] array запрашивает у базы данных все сообщения друзей текущего пользователя. И люди = [] array — это все запросы на добавление в друзья, которые еще не приняты текущим пользователем.