Найти - Пользователи
Полная версия: M2M AND LIMIT_CHOICES_TO
Начало » Django » M2M AND LIMIT_CHOICES_TO
1
jasper
Здравствуйте господа.
Никак не могу вкурить как работает limit_choices_to. Растолкуйте плиз на этом примере.

Есть 2-е модели:

class Preset(models.Model):
name = models.CharField(u'Name', max_length=50)
accessories = models.ManyToManyField('Accessories', null=True, blank=True, limit_choices_to={???:???})
class Accessories(models.Model):
name = models.CharField(u'Accessories name', max_length=60)
price = models.FloatField(u'Cost')
active = models.BooleanField(u'Active', default=True)
Мне нужно чтобы при создании или редактировании модели Preset, у нее были видны только те Accessories которые в нее добавили. Те которые относятся к другим Presetам не отображались. Точно знаю что это можно сделать с помощью limit_choices_to, но как незнаю :(

Поиск по форуму и всяким гуглам ничего не дал. Очень сильно нужна помощь.

Заранее спасибо.
Александр Кошелев
jasper
Точно знаю что это можно сделать с помощью limit_choices_to, но как незнаю :(
Нет. Это нельзя сделать.
jasper
Ну почемуже. ОРМ создала таблицу phound_preset_accessories с полями для связки.
Если указать
limit_choices_to={'preset__id':1}
то он работает. Ну естественно с только первой записью. Я никак не могу понять как передать в limit_choice_to ID текущей записи, естественно что self.id не канает, так как self не определен.
Александр Кошелев
jasper
Ну почемуже. ОРМ создала таблицу phound_preset_accessories с полями для связки.
Что “ну почему”? :-) Вы сами подтвердили мои слова.
jasper
как передать в limit_choice_to ID текущей записи,
Никак. Это нельзя сделать.

Эту задачу надо решать на уровне формы редактирования, а не декларации модели.
jasper
Хм. Фигово. Ну а как можно по другому реализовать (без костылей с выводом формы) отношения one_to_many (One Preset Many Accessories) ?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB