Я использую два взаимосвязанных поля ChainedForeignKey, но они этого не делают. Почему? - PullRequest
0 голосов
/ 17 января 2020

моя проблема: у меня три модели. il (провинция), ilce (район) и mahalle (район). Я фильтрую с помощью smart-select. работает бесперебойно при вводе информации. Когда я посмотрел на базу данных, я увидел, что данные о махалле (окрестностях) были записаны. но виджет mahalle (окрестности) звучит пусто.

мои модели:

class il(models.Model):
    adi = models.CharField(max_length=20)

class ilce(models.Model):
    ill = models.ForeignKey(il, on_delete=models.CASCADE)
    adi = models.CharField(max_length=35)

class mahalle(models.Model):
    ilcee = models.ForeignKey(ilce, on_delete=models.CASCADE)
    adi = models.CharField(max_length=50)


class User(AbstractUser):
    username = None
    email = models.EmailField(_('email address'), unique=True)
    .......
    kurum_il = models.ForeignKey('il', on_delete=models.SET_NULL, null=True, blank=False)
    kurum_ilce = ChainedForeignKey('ilce', chained_field="kurum_il", chained_model_field="ill", show_all=False, sort=False, null=True, blank=False)
    kurum_mahalle = ChainedForeignKey('mahalle', chained_field="kurum_ilce", chained_model_field='ilcee', show_all=False, sort=False, null=True, blank=False)

Не отображается на странице администратора, даже если я вхожу и сохраняю информацию о окрестностях связанный снимок экрана

1 Ответ

1 голос
/ 17 января 2020

Django -smart-selects выглядит долго не поддерживаемым с последним выпуском в 2018 году.

Однако есть несколько вопросов, которые могут быть затронуты или обсуждены, которые могут относиться к вашему вопросу, один из их # 237 . В качестве решения он имеет этот запрос на извлечение с небольшим изменением файла .js (на самом деле он просто комментирует одну строку).

Поскольку он еще не включен в официальный выпуск, вы можете примените эти изменения вручную и предоставьте новый файл .js для переопределения первого пакета:

  • copy chainedfk. js из главной ветви вашего проекта

  • поместите его в папку 'smart-selects / admin / js / chainedfk. js' в вашем каталоге для stati c файлов :

    • поместите в каталог static в вашем приложении и сделайте это приложение видимым до smart_selects в INSTALLED_APPS

    • или используйте тот же static каталог или другой путь по вашему выбору, но укажите путь к static каталогу в STATICFILES_DIRS (более предпочтительно, не зависит от порядка в INSTALLED_APPS)

  • отредактируйте этот файл, примените изменения из этого запроса на извлечение и любые другие изменения по вашему выбору.

    * 10 54 *
...