django - 在 django admin 中限制外键的字段选择
问题描述
我有 4 个简单的模型:
模型.py
class State(models.Model):
name = models.CharField(max_length=20)
class County(models.Model):
name = models.CharField(max_length=30)
state = models.ForeignKey(State, on_delete=models.CASCADE)
class District(models.Model):
name = models.CharField(max_length=30,null=True, blank=True)
county = models.ForeignKey(County,on_delete=models.CASCADE, null=True, blank=True)
class Teacher(model.Model):
name = models.CharField(max_length=20)
state = models.ForeignKey(State, on_delete=models.CASCADE)
county = models.ForeignKey(County,on_delete=models.CASCADE, null=True, blank=True)
district = models.ForeignKey(District,on_delete=models.CASCADE, null=True, blank=True)
管理员.py:
@admin.register(Teacher)
class TeacherAdmin(admin.ModelAdmin):
list_display = ['name','state','county','district']
我的问题是在Teacher
字段的管理页面中county
,district
所有县和地区都显示在下拉选择框中。我想要的只是教师状态显示的县和区。谢谢你
解决方案
选择这些字段的默认值以使您更改管理页面中的字段。无论如何,如果您只想拥有可以在下面的代码中使用的值。
将以下代码添加到models.py
文件中的模型类中:
def state_value(self):
return ("%s" % (self.state.name))
你的admin.py
文件会是这样的:
@admin.register(Teacher)
class TeacherAdmin(admin.ModelAdmin):
list_display = ['name','state_value']
您也可以对其他字段重复此过程。
推荐阅读
- excel-formula - 根据多个搜索条件在多个列中搜索多个匹配项
- ansible - 我如何循环可能具有单个值的变量?
- java - 将 HTML 登录页面集成到 Hybris 或将 URL 重定向到另一台服务器
- javascript - 创建要加载 JSON 的订单
- linux - 无法在内核源中卸载块设备
- css - 只有当它们达到最小宽度时才使弹性项目换行
- php - 如何将肥皂服务器中创建的会话传输到肥皂客户端代码?
- amazon-web-services - 在 CodeDeploy 中替换 EBS 环境变量
- r - 如何在 R 中将具有多个 LHS 的模型的结果制成表格?
- reactjs - 部署 React 应用,Router 不正确