Форум сайта python.su
Подскажите, как реализовать выборку при соответствии значения в модели одному из значений ManyToManyField по результатам прошлой выборки.
Например:
модель:
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")
Офлайн
как вариант:
ids = [cathegory.id for cathegory in user_category_list.categories] # В общем, перебираем все категории и вносим их id в список
project_list = Project.objects.filter(freelance_site=f_site,category__id__in=ids).order_by("-pub_date")
Отредактировано (Фев. 12, 2010 05:20:34)
Офлайн
sairus, но ManyToManyField не итерируем, поэтому нельзя тут использовать генератор списка.
Может ещё будут идеи?
Офлайн
Mutagenauser_category_list.categories - нет,
sairus, но ManyToManyField не итерируем, поэтому нельзя тут использовать генератор списка.
Может ещё будут идеи?
Офлайн
sairus, точно :)
Офлайн