Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Достать записи с разными Foreign Key из таблицы [RSS Feed]

#1 Авг. 11, 2012 11:35:31

pyOut
От:
Зарегистрирован: 2006-07-16
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Достать записи с разными Foreign Key из таблицы

Есть модели:

class Country(models.Model): 
  name = models.CharField(_("Name"), max_length=50, unique=True) 
class Profile(models.Model): 
  name = models.CharField(_("Name"), max_length=50, unique=True) 
  country = models.ForeignKey(Country) 
Задача:
Нужно достать 3 любых профиля причем country_id у которых не одинаковые.
Делаю запрос:
Profile.objects.select_related().order_by('?').limit(3)

Но такой запрос может вернуть профайлы у которых country_id совпадает. Можно ли как-то изменить запрос чтобы он доставал разные country_id? Если да, то как?



Офлайн

#2 Авг. 11, 2012 18:27:33

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

Достать записи с разными Foreign Key из таблицы

То, что придумалось сходу на коленке:

from random import choice
countries = Country.objects.all()
diff_countr = []
while 1:
    c = choice(countries)
    if c not in diff_countr:
            diff_countr.append(c)
    if len(diff_countr) > 2:
             break
profiles  = Profile.objects.filter(country__in = diff_countr)



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Офлайн

#3 Авг. 11, 2012 21:13:23

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Достать записи с разными Foreign Key из таблицы

Вот тут посмотрите:
http://stackoverflow.com/questions/3852104/select-distinct-individual-columns-in-django



Отредактировано Saturn (Авг. 11, 2012 21:13:49)

Офлайн

  • Начало
  • » Django
  • » Достать записи с разными Foreign Key из таблицы[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version