繁体   English   中英

如何在 Django 管理面板中使用智能选择?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM