Django - Как динамически ограничить категорию поста в блоге? - PullRequest
0 голосов
/ 25 ноября 2018

Я работаю над проектом блога.Я хочу установить первичные и вторичные категории для сообщений.Например,

основная категория: музыка, кино, компьютер и второстепенные категории для каждой основной категории, такие как: музыка - танцы, рок, кантри / кино - сценарий, тизер, обзор / компьютер - оборудование, программное обеспечение /

И когда я создаю новую запись, я хочу ограничить выбор вторичной категории в соответствии с выбранной первичной категорией.(если быть точным, во-первых, я хочу, чтобы во всплывающих меню отображались как первичные, так и вторичные категории, и, во-вторых, после выбора основной категории я хочу, чтобы только выбор вторичной категории относился к основной категории Iвыбрано для отображения в раскрывающемся меню для вторичной категории.)

В настоящее время мои models.py:

class PrimaryCategory(models.Model):
    title = models.CharField('Primary Category', max_length=50)

class SecondaryCategory(models.Model):
    title = models.CharField('Secondary Category', max_length=50)
    primary = models.ForeignKey(PrimaryCategory,on_delete=models.CASCADE)

class Post(models.Model):
    title = models.CharField(max_length=256)
    content = models.TextField()
    create_date = models.DateTimeField(auto_now_add=True)
    author = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
    primary_category = models.ForeignKey(PrimaryCategory, on_delete=models.CASCADE, null=True)
    secondary_category = models.ForeignKey(SecondaryCategory, on_delete=models.CASCADE, null=True)

, и я произвел поиск, и, возможно, я могу использовать ForeignKey.limit_choices_to в моих модельных формах, ноЯ застрял здесь.Может ли кто-нибудь любезно помочь в написании моего forms.py?

В настоящее время у меня есть только такие формы:показать выбор категории в выпадающем меню вместо ввода свободного текста?

как динамически ограничить выбор вторичной категории в соответствии с выбором основной категории в форме?

(добавлено) 3. У меня нет практических знаний о javascript, поэтому я хочу сделать это без JS, если это возможно .. Если невозможно динамически изменить выбор, то возможно ли сделать форму для предоставлениямне сообщение об ошибке, если выбор второй категории, который я сделал, не соответствует выбранной основной категории?Я думаю, что буду работать над этим, но любой совет будет очень полезен.

Я был бы признателен за любую помощь.Спасибо.

1 Ответ

0 голосов
/ 26 ноября 2018

Я гуглил и нашел именно то, что хотел здесь:

https://simpleisbetterthancomplex.com/tutorial/2018/01/29/how-to-implement-dependent-or-chained-dropdown-list-with-django.html

Требуется jQuery, и я на самом деле не до конца понял, что происходит в части решения jQuery, нов остальном все понятно и работает отлично!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...