pow*_*wlo 5 django django-forms django-admin
我希望管理员能够编辑普通用户无法编辑的字段。例如作者或订阅者等。
我试过这个:Django admin:如何在模型中显示一个标记为 editable=False' 的字段?
(答案中给出的可编辑部分)
但是该字段仍然无法出现在管理页面上。
这里有一些信息供参考:
#models.py
class MyModel(models.Model):
myfield = models.ManyToManyField(User, blank=True, editable=False)
#admin.py
class MyModelAdminForm(forms.ModelForm):
myfield = models.ManyToManyField(User, blank=True, editable=True)
class Meta(object):
model = MyModel
class MyModelAdmin(admin.ModelAdmin):
form = MyModelAdminForm
admin.site.register(MyModel, MyModelAdmin)
Run Code Online (Sandbox Code Playgroud)
如果我将模型更改为状态 editable=True 那么我会在我的管理页面上看到该字段。(如预期)
我正在使用 Django 1.3,Python 2.6
您应该通过权限处理此用例:只有拥有模型更改权限的用户才可以真正更改它。这些权限默认存在于 Django 中。您只需在显示表单之前检查它们即可。
它们还可以用于更细粒度的控制,例如仅显示某些字段。但该逻辑必须由您在视图和模板中实现。
看一下: https: //docs.djangoproject.com/en/1.11/topics/auth/default/#default-permissions
如果您仍然需要编辑不可编辑字段,请查看:/sf/answers/3130411861/
| 归档时间: |
|
| 查看次数: |
12752 次 |
| 最近记录: |