[英]Django admin, how to restrict a user to insert records only within his country?
我有这个 Model
title= country = models.CharField(max_length=25)
country = models.ForeignKey(Country)
city = models.ForeignKey(City)
user = country = models.ForeignKey(User)
使用默认 Django 管理员中的(添加案例+)页面,是否可以根据当前用户自定义国家和城市下拉列表选项?
例如:如果当前登录的用户来自美国,那么国家下拉列表将只显示一个选项(美国),而城市下拉列表将只显示美国的城市。那么,该用户将只允许添加与他/她的国家有关的案件。
回答您的问题:是的,当然这是可能的 -如果您当然也知道您的用户属于哪个国家/地区。
你必须
1/ 从表格中排除country
字段,
2/ 使用formfield_for_foreignkey()过滤city
字段的查询集
3/ 并在 ModelAdmin 的save_model()
方法中手动填充模型的字段
请注意,仅阅读 modeladmin 的文档就可以回答您的问题 - 有一些非常相似的用例示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.