#python #django #django-smart-selects
#python #django #django-smart-выбирает
Вопрос:
Я работаю над проектом, в котором мне нужно добавить два зависимых выпадающих списка, для этого я пытался использовать Django-smart-selects, но у меня возникла проблема. Вот что я сделал
Вот мои модели
class District(models.Model):
name = models.CharField(max_length=100, default=None)
created_at = models.DateField(default=django.utils.timezone.now)
class Meta:
managed = True
db_table = 'District'
def __str__(self):
return self.name
class PoliceStation(models.Model):
name = models.CharField(max_length=100, default=None)
district = models.ForeignKey(
District, on_delete=models.CASCADE, max_length=100)
created_at = models.DateField(default=django.utils.timezone.now)
class Meta:
managed = True
db_table = 'PoliceStation'
def __str__(self):
return self.name
class NewsAndUpdates(models.Model):
title = models.CharField(max_length=250)
description = HTMLField()
category = models.ForeignKey(
Category, on_delete=models.CASCADE, max_length=100)
district = models.ForeignKey(
District, on_delete=models.CASCADE)
policeStation = ChainedForeignKey(
PoliceStation,
chained_field="district",
chained_model_field="district",
show_all=False,
auto_choose=True,
on_delete=models.CASCADE)
class Meta:
managed = True
db_table = 'NewsAndUpdates'
Это мой urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('chaining/', include('smart_selects.urls')),
]
Вот мои установленные приложения
INSTALLED_APPS = [
....
'smart_selects',
]
В setting.py
Я использовал это, как было предложено, когда я искал проблему
USE_DJANGO_JQUERY = True
Это мой admin.py
class NewsAndUpdatesAdmin(admin.ModelAdmin):
list_display = ('title', 'category', 'created_at',
'is_published', 'is_draft')
admin.site.register(NewsAndUpdates, NewsAndUpdatesAdmin)
Но я получаю проблему, которая
Reverse for 'chained_filter' not found. 'chained_filter' is not a valid view function or pattern name
Использование Django версии 3.1
Комментарии:
1. Вы выполнили команду migrate
2. Да, я выполнил команду migrate.
3. @SatyenChauhan вам удалось решить эту проблему?
4. @fmakawa еще нет
Ответ №1:
Ошибка NoReverseMatch говорит о том, что Django не может найти соответствующий шаблон URL-адреса для URL-адреса, который вы указали в любом из URL-адресов вашего установленного приложения. Исключение NoReverseMatch вызывается django. … urlresolvers, когда соответствующий URL-адрес в вашем URLconf не может быть идентифицирован на основе предоставленных параметров.
Комментарии:
1. Спасибо за ваш ответ, но я следил за документом Django-smart-selects. Что я должен добавить в URL-адрес еще?
2. я думаю, что у вас есть функция просмотра или приложение, которые не зарегистрированы в вашем URL, проверьте это в своем коде
3. иногда мы передаем какой-то аргумент, но мы забыли добавить его в наш URL, поэтому проверьте это также
4. Это библиотека, которую я установил, я не написал для этого никакой функции, на мой взгляд
5. речь идет не о вашей библиотеке, а о chained_filter, где вы использовали chained_filter проверьте там, отсутствуют ли какие-либо URL или аргументы
Ответ №2:
Я получил эту ошибку, когда я не зарегистрировал smart_selects.url-адреса в urls.py .
Ответ №3:
Добавить в /app/urls.py:
urlpatterns = [
re_path(r'^chaining/', include('smart_selects.urls'))
]