根据先前选择的选项显示 Django Fieldset 值?

问题描述

我正在使用 Django 的内置管理功能支持网络应用的管理员用户

到目前为止,我还在使用 mixins 和“rest_framework - 视图集”库来自动化通用 CRUD API。

在我的 admin.py 文件中,我使用 fieldsets 轻松创建了一个漂亮的表单来添加带有自动包含的下拉列表、复选框、日期框等的新记录。太棒了。

最近的一个担忧是,其中一些项目选择应该决定其他项目的可用选项。

例如,如果一个人选择了一个州/省,可用城市的列表应该仅限于该州/省的城市,而不是数据库中的所有城市。

有没有办法在字段集语法中实现这种行为/而不必放弃视图集并恢复到手动编码这种行为?

编辑#1:需要明确的是,我的工作应用程序没有forms.py。所以我正在寻找一个只影响models.py、admin.py或views.py的解决方

编辑 #2:提供了代码示例。

问题:选择州后,“城市”下拉菜单仍会显示所有可用城市,而不是特定于上面选择的国家/地区。

示例 admin.py

class SiteAdmin(ImportExportModelAdmin):
    fieldsets = (
        (Region,{
            'fields': ('State/Province')
        }),('SubArea,{
            'fields': ('City'),}),)

示例views.py

class SiteViewSet(viewsets.ReadOnlyModelViewSet):
    """
    A simple ViewSet for viewing accounts.
    """
    queryset = Site.objects.all()
    serializer_class = SiteSerializer

示例模型.py

class State(models.Model):
    name = models.CharField(max_length=100)


class City(models.Model):
    name = models.CharField(max_length=100)
    state = models.ForeignKey(state,on_delete=models.CASCADE,)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)