这是我的模型结构。
class Category(models.Model):
name = models.CharField(max_length=100)
class SUBCategory(models.Model):
name = models.CharField(max_length=100)
cat = models.ForeignKey(Category,related_name = 'scat',null = True,blank=True)
class Tags(models.Model):
name = models.CharField(max_length=100)
class FullProfile(models.Model):
user = models.OneToOneField(User)
birthday = models.DateField(null = True,blank=True)
first_name = models.CharField(max_length=100,null = True,blank=True)
middle_name = models.CharField(max_length=100,null = True,blank=True)
last_name = models.CharField(max_length=100,null = True,blank=True)
token = models.CharField (max_length=200,null = True,blank=True)
status = models.CharField(max_length=100,null = True,blank=True)
tags = models.ManyToManyField(Tags,related_name = 'tg',null = True,blank=True)
category = models.ForeignKey(Category,related_name = 'cat',null = True,blank=True)
facebook_url = models.CharField(max_length=100,null = True,blank=True)
twitter_url = models.CharField(max_length=100,null = True,blank=True)
mobile = models.CharField(max_length=100,null = True,blank=True)
landline = models.CharField(max_length=100,null = True,blank=True)
country = models.CharField(max_length=100,choices = COUNTRIES,null=True,blank =True,default='INDIA')
state = models.CharField(max_length=100,null = True,blank=True)
city = models.CharField(max_length=100,null = True,blank=True)
基本上一个用户可以属于一个类别和子类别。
我正在寻找一种方法来搜索属于特定类别、子类别或标签的用户,
我只是在尝试基本的东西,比如
get_all = FullProfile.objects.filter(
Q(category__id__iexact=cat) |
Q(user__username__icontains=keyword) |
Q(first_name__icontains=keyword)
).distinct()
请告诉我让这个搜索模块有效的更好方法。因为其他人要管理这个应用程序,所以我不想使用 Haystack 进行这个小搜索。