我正在尝试使用django-smart-selects在Django管理面板中进行智能选择。我想确保在创建术语时,您首先需要选择一个主题,并根据此项目选择与此主题相关的部分。我做了pip install django-smart-selects,并在INSTALLED_APPS中添加了smart_selects。
这是我的代码。
models.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()urls.py
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')添加到管理路径中。
我试着这样做,但这并没有改变任何事情:
path('admin/', admin.site.urls),
path('admin/', include('smart_selects.urls')),我也尝试过这样做,但它给出了“元组‘TypeError’对象不是一个映射”:
path('admin/', admin.site.urls, include('smart_selects.urls')),发布于 2021-02-28 16:47:25
问题是,在admin.py的TermAdmin类中,我编写了autocomplete_fields = ['section']。删除此行后,一切正常。
https://stackoverflow.com/questions/66398546
复制相似问题