Поле ManyToMany фильтра в Django Admin

Попробуйте NRegEx.

34
задан schmilblick 4 August 2009 в 11:47
поделиться

5 ответов

Хорошо, это мое решение с использованием вышеуказанных классов. Я добавил еще несколько фильтров, чтобы правильно отфильтровать его, но я хотел сделать код читаемым здесь.

Это именно то, что я искал, и я нашел свое решение здесь: http: //www.slideshare .net / lincolnloop / customizing-the-django-admin # stats-bottom (слайд 50)

Добавьте следующее в мой admin.py: [

] Это фильтрует список «категорий» без удаления каких-либо функций! (то есть: у меня все еще может быть мой любимый filter_horizontal :))

ModelForms очень мощный, я немного удивлен, что он больше не описан в документации / книге.

37
ответ дан 27 November 2019 в 16:50
поделиться

Поскольку вы выбираете город и категории клиента в одной и той же форме, вам потребуется некоторый JavaScript, чтобы динамически сократить селектор категорий до категорий, доступных в выбранном городе.

1
ответ дан 27 November 2019 в 16:50
поделиться

Насколько я могу вас понять, это в основном вы хотите отфильтровать показанные варианты по некоторым критериям (категория по городу).

Вы можете сделать именно это, используя атрибут limit_choices_to в models.ManyToManyField . Итак, измените определение модели как ...

class Customer(models.Model):
    name = models.CharField(max_length=200)
    city = models.ForeignKey(City)
    categories = models.ManyToManyField(Category, limit_choices_to = {'available_in': cityId})

Это должно сработать, поскольку limit_choices_to доступен именно для этой цели.

Но следует отметить одно: limit_choices_to не имеет эффект при использовании в ManyToManyField с настраиваемой промежуточной таблицей. Надеюсь, это поможет.

15
ответ дан 27 November 2019 в 16:50
поделиться
Category.objects.filter(available_in=cityobject)

Это должно сработать. В представлении должен быть указан город, выбранный пользователем, либо в запросе, либо в качестве параметра этой функции просмотра.

-1
ответ дан 27 November 2019 в 16:50
поделиться

Как и говорит Райан, должен быть какой-то javascript для динамического изменения параметров в зависимости от того, что выбирает пользователь. Опубликованное решение работает, если город сохранен, а форма администратора перезагружена, то есть когда фильтр работает, но подумайте о ситуации, когда пользователь хочет отредактировать объект, а затем изменяет раскрывающийся город, но параметры в категории не обновляются.

0
ответ дан 27 November 2019 в 16:50
поделиться
Другие вопросы по тегам:

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