Уведомления

Группа в Telegram: @pythonsu

#1 Март 16, 2010 13:07:41

jasper
От:
Зарегистрирован: 2010-03-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

M2M AND LIMIT_CHOICES_TO

Здравствуйте господа.
Никак не могу вкурить как работает 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, но как незнаю :(

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

Заранее спасибо.



Отредактировано (Март 16, 2010 14:10:13)

Офлайн

#2 Март 16, 2010 13:59:40

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

M2M AND LIMIT_CHOICES_TO

jasper
Точно знаю что это можно сделать с помощью limit_choices_to, но как незнаю :(
Нет. Это нельзя сделать.



Офлайн

#3 Март 16, 2010 14:08:41

jasper
От:
Зарегистрирован: 2010-03-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

M2M AND LIMIT_CHOICES_TO

Ну почемуже. ОРМ создала таблицу phound_preset_accessories с полями для связки.
Если указать

limit_choices_to={'preset__id':1}
то он работает. Ну естественно с только первой записью. Я никак не могу понять как передать в limit_choice_to ID текущей записи, естественно что self.id не канает, так как self не определен.



Отредактировано (Март 16, 2010 14:09:30)

Офлайн

#4 Март 16, 2010 14:45:01

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

M2M AND LIMIT_CHOICES_TO

jasper
Ну почемуже. ОРМ создала таблицу phound_preset_accessories с полями для связки.
Что “ну почему”? :-) Вы сами подтвердили мои слова.
jasper
как передать в limit_choice_to ID текущей записи,
Никак. Это нельзя сделать.

Эту задачу надо решать на уровне формы редактирования, а не декларации модели.



Офлайн

#5 Март 16, 2010 15:10:10

jasper
От:
Зарегистрирован: 2010-03-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

M2M AND LIMIT_CHOICES_TO

Хм. Фигово. Ну а как можно по другому реализовать (без костылей с выводом формы) отношения one_to_many (One Preset Many Accessories) ?



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version