在 Django 管理中允许仅对特定对象进行对象编辑,可以通过以下几个步骤实现:
has_change_permission
方法,该方法用于判断当前用户是否具有编辑特定对象的权限。from django.contrib import admin
from .models import YourModel
class YourModelAdmin(admin.ModelAdmin):
def has_change_permission(self, request, obj=None):
if obj and obj.is_editable:
return True
return False
is_editable
字段,用于判断当前对象是否允许编辑。from django.db import models
class YourModel(models.Model):
is_editable = models.BooleanField(default=False)
is_editable
字段的值来控制编辑按钮的显示。{% if obj.is_editable %}
<a href="{% url 'admin:your_app_yourmodel_change' obj.id %}">编辑</a>
{% endif %}
is_editable
字段的值。from django.views.generic import DetailView
from .models import YourModel
class YourModelDetailView(DetailView):
model = YourModel
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
obj = context['object']
if some_condition:
obj.is_editable = True
else:
obj.is_editable = False
return context
通过以上步骤,可以实现在 Django 管理中仅允许特定对象进行编辑。
推荐的腾讯云相关产品:
产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云