[英]How to use smart-selects in Django admin panel?
我正在尝试使用django-smart-selects 在 Django 管理面板中进行智能选择。 我想确保在创建术语时,您首先需要 select 一个主题,并基于此项目,select 一个与此主题相关的部分。 我做了pip install django-smart-selects
selects 并将smart_selects
添加到INSTALLED_APPS
。
这是我的代码。
模型.py
from smart_selects.db_fields import ChainedForeignKey
class Subject(models.Model):
name = models.CharField(max_length=128)
class Section(models.Model):
subject = models.ForeignKey(Subject, on_delete=models.CASCADE)
name = models.CharField(max_length=128)
position = models.IntegerField()
class Term(models.Model):
subject = models.ForeignKey(Subject, on_delete=models.CASCADE)
section = ChainedForeignKey(Section, chained_field='subject', chained_model_field='subject', show_all=False)
name = models.CharField(max_length=128)
definition = models.TextField()
网址.py
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('subjects.urls')),
path('', include('main.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
当我创建一个新术语并选择一个主题时,我可以 select 任何部分,而不仅仅是与这个主题相关。 我想我需要将include('smart_selects.urls')
添加到管理路径。
我试图这样做,但它没有改变任何东西:
path('admin/', admin.site.urls),
path('admin/', include('smart_selects.urls')),
我也尝试这样做,但它给出了“TypeError 'tuple' object is not a mapping”:
path('admin/', admin.site.urls, include('smart_selects.urls')),
问题是在admin.py
TermAdmin
的 admin.py 中,我写了autocomplete_fields = ['section']
。 删除此行后,一切正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.