У меня есть веб-приложение Django, для которого я хочу выполнить базовую фильтрацию.По сути, у меня есть сайт в соцсетях, где пользователи регистрируют свои хобби.То, что я хочу сделать, это иметь фильтр, где пользователи могут выбрать, чтобы видеть только мужчин или женщин пользователей на данный момент.Хотя я могу сделать это в Python Shell с помощью следующего кода:
from mainapp.models import Profile
Users = Profile.objects.all().filter(gender = "Male")
У меня проблемы с реализацией этого в Django.Вот мой файл models.py:
class Hobby(models.Model):
name = models.CharField(max_length=50, default='')
def __str__(self):
return self.name
class Profile(models.Model):
user = models.OneToOneField(
to=User,
blank=True,
null=True,
on_delete=models.CASCADE
)
gender = models.CharField(max_length=6, default='')
age = models.CharField(max_length=3, default='')
dob = models.CharField(max_length=10, default='')
image = models.ImageField(upload_to='profile_images')
hobbies = models.ManyToManyField(Hobby)
Функция фильтра, которая находится в файле Views.py:
def filter(user):
other_users = Profile.objects.all()
filter_results = other_users.filter(gender = "Male")
context = {
'appname': appname,
'usersresults': filter_results
}
return render(request, 'mainapp/members.html', context)
Часть URL:
path('filter/', views.filter, name='filter'),
И HTML-код:
<ul>
{% for user in usersresults %}
<li>
<a> {{user}}</a>
</li>
{% endfor %}
</ul>
Однако это не работает должным образом и ничего не возвращает на дисплей.Я не уверен, почему это идет не так - любая помощь / совет будет высоко ценится.