Это моя модель:
class Profile(models.Model):
date = models.DateTimeField(auto_now_add=True)
full_name = models.CharField(max_length=32,blank=True)
user_types = (
('Business User','Business User'),
('Professional','Professional'),
)
user_type = models.CharField(max_length=32,choices=user_types,default='Business User',blank=False)
user= models.OneToOneField(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
e_mail = models.EmailField(max_length=70,blank=True)
Как вы можете видеть, в моей Profile
модели Business User
и Professional
есть два типа пользователей.Поэтому я хочу сделать запрос в django, который будет искать только для Professional
пользователей.
Я пробовал это в моих представлениях:
query = request.GET.get('q')
if query:
if Profile.objects.filter(user_type__icontains='Professional'):
result = Profile.objects.filter(Q(user__username__icontains=query) | Q(e_mail__icontains=query) | Q(full_name__icontains=query))
else:
result = Profile.objects.filter(user_type__icontains='Professional').order_by('id')
В моем шаблоне:
<form method='GET' class="form-horizontal" id="search-form" action="{% url 'userprofile:search' %}">
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-6">
<input class="form-control" name="q" value="{{request.GET.q}}" placeholder="Search">
</div>
<div >
<span class="input-group-btn">
<button type="submit" class="btn btn-info pull-right">Go</button>
</span>
</div>
</form>
Но когда я ищу пользователя Professional
, он дает мне список всех пользователей, связанных с этим именем.
Может кто-нибудь предоставить мне подходящее решение для этого.
Спасибо