我正在尝试为用户提供模型字段级别的隐私设置。因此用户可以决定要显示哪些数据以及要隐藏哪些数据。
示例:
class Foo(models.Model):
user = models.OneToOneField("auth.User")
telephone_number = models.CharField(blank=True, null=True, max_length=10)
image = models.ImageField(upload_to=get_photo_storage_path, null=True, blank=True)
我想为用户提供一个选项来选择他想要显示和不显示的字段。 假设用户不想显示电话号码,因此他应该可以选择显示电话号码。
解决这个问题的最佳方法是什么?
最佳答案
您可以在模型中创建一个 CommaSeparatedIntegerField 字段,并使用它来存储用户想要隐藏的 field_names(表示 field_name 的整数)列表。
您可以在 fields_names 和整数之间创建映射作为 models.py 中的常量。并检查用户已检查的 field_names。
映射示例:
FIELD_NAME_CHOICES = (
(1, Foo._meta.get_field('telephone_number')),
(2, Foo._meta.get_field('name')),
.
.
)
查看以下链接以供引用https://docs.djangoproject.com/en/1.8/ref/models/fields/#commaseparatedintegerfield
关于python - 在模型 django 中的每个字段上实现隐私的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30499049/