我通过添加公司字段扩展了django用户模型:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
company = models.ForeignKey(Companies, on_delete=models.CASCADE, null=True, blank=True)
现在假设另一个模型跨公司保存数据:
class Product(models.Model):
name = models.CharField(max_length=256, null=True, blank=True)
tags = TaggableManager(blank=True)
company = models.ForeignKey(Companies, on_delete=models.CASCADE, null=True, blank=True, editable = False)
请注意,此处的公司字段不可编辑,因为我已覆盖save_model(),以从其个人资料中获取用户的公司字段:
class ProductAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
if getattr(obj, 'company', None) is None:
obj.company = request.user.profile.company
obj.save()
如何根据用户个人资料字段(例如公司)创建自定义权限?
示例权限要求:
提前致谢