首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Django管理面板中使用智能选择?

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

Stack Overflow用户
提问于 2021-02-27 19:52:00
回答 1查看 240关注 0票数 0

我正在尝试使用django-smart-selects在Django管理面板中进行智能选择。我想确保在创建术语时,您首先需要选择一个主题,并根据此项目选择与此主题相关的部分。我做了pip install django-smart-selects,并在INSTALLED_APPS中添加了smart_selects

这是我的代码。

models.py

代码语言:javascript
复制
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()

urls.py

代码语言:javascript
复制
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('subjects.urls')),
    path('', include('main.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

当我创建一个新术语并选择一个主题时,我可以选择任何部分,而不仅仅是与该主题相关的部分。我想我需要将include('smart_selects.urls')添加到管理路径中。

我试着这样做,但这并没有改变任何事情:

代码语言:javascript
复制
path('admin/', admin.site.urls),
path('admin/', include('smart_selects.urls')),

我也尝试过这样做,但它给出了“元组‘TypeError’对象不是一个映射”:

代码语言:javascript
复制
path('admin/', admin.site.urls, include('smart_selects.urls')),
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-28 16:47:25

问题是,在admin.pyTermAdmin类中,我编写了autocomplete_fields = ['section']。删除此行后,一切正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66398546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档