Avillions
@Avillions
PHP Developer at Genesis

Как правильно составить limit_choices_to?

Добрый день, в админке есть профиль пользователя, у него есть набор фотографий, и некоторые из этих фотографий можно ставить как фото профиля. Но при текущей реализации в select'e выводятся список всех фотографий в системе, не ограничиваясь редактируемым профилем. Вот я и хотел ограничивать select выбора фотографии профиля текущим редактируемым профилем, но не знаю как.

У меня есть 3 модели:
class Account(models.Model):
    login = models.CharField(max_length=255)
    password = models.CharField(max_length=255)
    first_name = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255)


class Photo(models.Model):
    account = models.ForeignKey(Account)
    photo_name = models.CharField(max_length=255)

class ProfilePhoto(models.Model):
    account = models.ForeignKey(Account)
    photo = models.ForeignKey(Photo, limit_choices_to=Q(account__id=account.primary_key))


При выводе selecta выбора фотограии профиля формируется вот такой запрос в mysql:
SELECT `clones_photo`.`id`,  `clones_photo`.`account_id`,  `clones_photo`.`photo_name`  FROM `clones_photo` WHERE `clones_photo`.`account_id` = 0


То есть есть модель Account, у этой модели есть связанные модели Photo. И мне нужно ограничить выборку в модели ProfilePhoto только теми моделями Photo которые связаны с текущей моделью Account. Но вместо Account.id подставляется 0.

Как правильно сделать?
  • Вопрос задан
  • 1533 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы