Как мне создать форму фильтра при наличии моделей со связями, и я хочу включить поля из других моделей - PullRequest
0 голосов
/ 07 июля 2019

Я разрабатываю бэкэнд моего веб-приложения. Сначала я покажу модели:

class School(Model):
    name = ...
    rank = ...


class Program(Model):
    id = ...
    length = ...
    campus = ForeignKey(Campus)


class Campus(Model):
    name = ...
    school = ForeignKey(School)
    city = ForeignKey(City)

class City(Model):
    population = ...
    city = ...
    province = ForeignKey(Province)


class Province(Model):
    province = ...
    country = ForeignKey(Country)

class Country(Model)
    country = ...
    population = ....

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

Мой первый вопрос: Существует пакет с именем django-filters. Вы рекомендуете использовать это? это надежно? Лучше использовать этот пакет или создать форму, отправить форму, получить их и создать набор запросов, с помощью которого я буду показывать отфильтрованные программы в шаблоне?

Мой второй вопрос: Если я хочу иметь форму с использованием встроенной Django ModelForm и хочу включить в мою форму город, провинцию, страну, название кампуса и даже население города, как мне это сделать? Предположим, я хочу показать программы в стране с населением менее 40 000 000 человек.

Мой третий вопрос: Мне нужна динамическая фильтрация. Предположим, я выбрал США в качестве страны. Я не хочу видеть Альберту провинцией в следующем поле. Предположим, я выбираю Канаду в поле страны и Альберту в поле провинции. Я хочу видеть только города Альберты, а не, например, Торонто. Я прочитал, что я должен использовать Ajax, но я не знаю, как.

...