У меня есть представление и шаблон, которые создают запросы для поиска по объектам в базе данных.У меня также есть списки, которые будут создавать список имен пользователей на основе различных наборов запросов.Я передаю искомый набор запросов и два списка ожидающих и друзей.Затем я проверяю, находятся ли имена пользователей в поисковом запросе в списке.если они в списке, он отобразит другое сообщение в зависимости от списка, в котором он находится. Если он не находится ни в одном списке, он отобразит другое сообщение.
error + trace:
AttributeError at /search/
'Friend' object has no attribute 'META'
Request Method: POST
Request URL: http://127.0.0.1:8000/search/
Django Version: 2.0.5
Exception Type: AttributeError
Exception Value:
'Friend' object has no attribute 'META'
Exception Location: /Users/omarjandali/anaconda3/envs/MySplit/lib/python3.6/site-packages/django/template/context_processors.py in debug, line 40
Python Executable: /Users/omarjandali/anaconda3/envs/MySplit/bin/python
Python Version: 3.6.2
Python Path:
['/Users/omarjandali/Desktop/mysplit/mysplit',
'/Users/omarjandali/anaconda3/envs/MySplit/lib/python36.zip',
'/Users/omarjandali/anaconda3/envs/MySplit/lib/python3.6',
'/Users/omarjandali/anaconda3/envs/MySplit/lib/python3.6/lib-dynload',
'/Users/omarjandali/anaconda3/envs/MySplit/lib/python3.6/site-packages']
вот код:
if request.method == "POST":
search = request.POST['search']
searched = User.objects.filter(username__contains = search).all()
searched |= User.objects.filter(first_name__contains = search).all()
searched |= User.objects.filter(last_name__contains = search).all()
requester = Friend.objects.filter(user = user).filter(requested = True).all()
requested = Friend.objects.filter(friend = user.username).filter(requested = True).all()
friended = Friend.objects.filter(user = user).filter(accepted = True).all()
friender = Friend.objects.filter(friend = user.username).filter(accepted = True).all()
pending = []
for request in requester:
pending.append(request.friend)
for request in requested:
pending.append(request.user.username)
print(pending)
friends = []
for friend in friended:
friends.append(friend.friend)
for friend in friender:
friends.append(friend.user.username)
print(friends)
parameters = {
'user':user,
'searched':searched,
'friends':friends,
'pending':pending,
}
return render(request, 'users/user_search.html', parameters)
Вот шаблон:
{% for search in searched %}
{% if search.username != user.username %}
<p>
<a href="{% url 'view_profile' username=search.username %}">{{ search.username }}</a>
{% if search.username in pending %}
Pending
{% elif search.username in friends %}
Friends
{% else %}
<a href="{% url 'send_request' username=search.username %}">Send Request</a>
{% endif %}
</p>
{% endif %}
{% endfor %}