繁体   English   中英

Django 管理员,如何限制用户只能在他的国家/地区插入记录?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM