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
中手动填充模型字段
请注意,只要阅读模型管理员的文档就可以回答您的问题 - 有非常相似的用例示例。
我有这个模型
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
请注意,只要阅读模型管理员的文档就可以回答您的问题 - 有非常相似的用例示例。