我有一个简单的问题.如何在Django中创建用户角色而无需手动在DB中创建用户角色?
编辑:我需要创建特定权限.因此,只有拥有此权限的用户才能更改模型的特定字段.我只需要为某些用户创建一个"readonly"字段.django有可能吗?
不使用数据库创建烫发意味着您不想使用django权限系统.在那一点上,我会问为什么你不想使用它?
如果可以使用django权限sywstem,则可以创建权限并通过覆盖admin save方法进行检查...
在你的 models.py
class SomeModel(Model):
your_spec_field = FieldType(...)
class Meta:
permissions = (
("some_perm", u"A name for your default permission"),
)
Run Code Online (Sandbox Code Playgroud)
在你的相关 admin.py
class SomeModelAdmin(ModelAdmin):
def save_model(self, request, obj, form, change):
if change:
curr_value = SomeModel.objects.get(pk=obj.id)
if not request.user.has_perm('<your_app>.some_perm'):
obj.your_spec_field = curr_value.your_spec_field
else:
if not request.user.has_perm('<your_app>.some_perm')
obj.your_spec_field = '' # or the default value according to your field type
obj.save()
Run Code Online (Sandbox Code Playgroud)
在此方法中,您将在保存之前获取相关记录的状态并检查相关权限.如果用户没有要求的烫发.然后用前一个字段替换字段的值.如果这是一条新记录,则将该字段设置为您想要的任何值.
| 归档时间: |
|
| 查看次数: |
12297 次 |
| 最近记录: |