gpt4 book ai didi

Django 管理员 : Edit model field with 'editable=False'

转载 作者:行者123 更新时间:2023-12-03 17:55:54 26 4
gpt4 key购买 nike

我希望管理员能够编辑普通用户无法编辑的字段。例如作者或订阅者等。

我试过这个:Django admin: How to display a field that is marked as editable=False' in the model?

(答案中给出的可编辑部分)

但是该字段仍然无法出现在管理页面上。

这里有一些信息供引用:

#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)

如果我将模型更改为状态 editable=True 那么我会在我的管理页面上看到该字段。 (如预期)

我正在使用 Django 1.3,Python 2.6

最佳答案

您应该通过权限处理这个用例:只有对模型具有更改权限的用户才被允许真正更改它。这些权限默认存在于 Django 中。您只需要在显示表单之前检查它们。

它们还可用于更细粒度的控制,例如仅显示某些字段。但是该逻辑必须由您在 View 和模板中实现。

看看:https://docs.djangoproject.com/en/1.11/topics/auth/default/#default-permissions

如果您仍然需要编辑不可编辑的字段,请查看:https://stackoverflow.com/a/44720169/621690

关于Django 管理员 : Edit model field with 'editable=False' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11560169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com