Например:
модель:
class Category(models.Model):
...
category = models.CharField(max_length=70)
def __unicode__(self):
return self.category
class Project(models.Model):
...
category = models.ForeignKey(Category)
freelance_site = models.ForeignKey(FreelanceSite)
def __unicode__(self):
return self.title
class UsersCategory(models.Model):
user = models.ForeignKey(User)
categories = models.ManyToManyField(Category, verbose_name='Категории')
def __unicode__(self):
return self.user.username
user_category_list = UsersCategory.objects.get(user=request.user)
f_site = FreelanceSite.objects.get(id=site_id)
project_list = Project.objects.filter(freelance_site=f_site,category=user_category_list.categories).order_by("-pub_date")