Django сложил встроенный админский вопрос - PullRequest
0 голосов
/ 11 февраля 2011

Использование Django 1.2 У меня есть встроенный админ со множеством полей для многих.Мне нужно ограничить выбор во многих из многих на основе родительского объекта, для которого существует встроенный объект.Например, у меня есть WidgetPart встроенный админ Widget.Когда я редактирую существующий Widget, мне нужно ограничить выбор WidgetPart.foo на основе логики, относящейся к редактируемому Wiget.Кажется, я не могу сделать это с formfield_for_manytomany, поскольку он не только не предоставляет никакой информации, связанной с obj, но и аргумент request, по-видимому, всегда равен None при использовании во встроенном.Есть ли другой способ?

1 Ответ

1 голос
/ 12 февраля 2011

Вы можете сделать что-то подобное в своем классе InlineAdmin:

def formfield_for_manytomany(self, db_field, request, **kwargs):
  if db_field.name == "foo":
    kwargs["queryset"] = SomeModel.objects.filter(something=something)
    return db_field.formfield(**kwargs)

  return super(YourModel, self).formfield_for_manytomany(db_field, request, **kwargs)
...