Django admin,如何限制用户只在他的国家插入记录?

Django admin, how to restrict a user to insert records only within his country?

我有这个模型

  title= country = models.CharField(max_length=25)
  country = models.ForeignKey(Country)
  city = models.ForeignKey(City)
  user = country = models.ForeignKey(User)

使用默认 Django 管理中的 (Add Case +) 页面,是否可以根据当前用户自定义国家和城市下拉列表选项?
例如:如果当前登录的用户来自美国,则国家下拉列表将只显示一个选项(美国),城市下拉列表将仅显示 USA.Then 中的城市,则该用户将只允许添加与 his/her 个国家/地区相关的案例。

回答您的问题:是的,当然这是可能的 - IF 您当然也知道您的用户属于哪个国家/地区。

你必须

1/exclude the country field from the form,

2/ 使用formfield_for_foreignkey() 过滤city 字段的queryset

3/ 并在您的 ModelAdmin save_model() method

中手动填充模型字段

请注意,只要阅读模型管理员的文档就可以回答您的问题 - 有非常相似的用例示例。