English 中文(简体)
允许观察,但不要改变! - Django
原标题:Permission to view, but not to change! - Django

允许用户观看,但不得改动或删除。

目前,我看到的唯一许可是“附加”、“改动”和“替代”的,但那里没有“阅读/观点”。

我确实需要这样做,因为一些用户只能与行政小组协商,以便了解其中的内容。

最佳回答
问题回答

您可使用。 django-admin-view-permission application:

<代码>pip 安装django-admin-view-permission

INSTALLED_APPS = [
     admin_view_permission ,
     django.contrib.admin ,
    ...
]

最新资料:

Django 2.1 ,在盒子上有观点许可。

你们只能看一看 d。

http://docs.djangoproject.com/en/dev/ref/contrib/databrowse/#ref-contrib-databrowse”rel=“nofollow noreferer”>。 app。

一项工作是就你的模式另外获得“休假”许可,并在示范行政座标上进行检查。 如果用户有这种许可,如果他没有这种许可,那就意味着他可以在这一模式管理中做一切,但可以节省编辑的数据!

向伯尔尼哈德·瓦尔特提供上述样本。 在我的行政档案中,我会立案。

class LogBookAdmin(admin.ModelAdmin):
    list_display        = [ dateEntry , due_date ,  controlNo ,  carrier ,  status ]    
    exclude             = [ encoder_status ,  engr_status ,  chief_status ,  ischecked ]

    def save_model(self, request, obj, form, change):     
        if request.user.groups.filter(name= Encoder ).exists():
            pass
        else:
            return super(LogBookAdmin, self).save_model(request, obj, form, change)

假设我有一组名称:<代码>Encoder,我只希望他们查看《后勤手册》。 但其他团体的名称可以避免任何变化。

在django 2.1中,你只需要推翻has_change_permission has_delete_permission<>:

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):

    def has_change_permission(self, request, obj=None):
        return False

    def has_delete_permission(self, request, obj=None):
        return False

    # to disable view and add you can do this 
    def has_view_permission(self, request, obj=None):
        return False

    def has_add_permission(self, request):
        return False

可以通过下列方式做到这一点:

1)You can make the fields read only if the object has been created.But doing this noone will be able to change the fields

2) 青少年可以使用数据浏览

3) 如果用户不在选定的清单中,如果任何领域发生变化,就会发现验证错误,那么你可以使用认证表。

4) 用户可以形成一种观点,如果用户在您的名单上,那么就会将其转向正常流动,或者将其转至简单的html阅读页

5) 将田地改为用户的频率不在清单中,而是高于检查任何智能的节省方法。 在你的储蓄方法中,你投错了任何形式,用户不在你们的名单上。

您也可超越示范Admin.change_view(如Django docs中所述)。 正确无误地确保你也超越“选择”,以确保用户能够更新数据。

我的工作需要牺牲change<>/em>,但只有允许。 行政模板change_form.html 我在模板和显示<条码>的标书上查看了addchange>的许可,但前提是用户有两种许可。 因此,有变更许可的用户只能看一看变化——清单和变化——格式,但从来看,各纽埃州提交它们所做的改动。

我所作的改动:

  • Create a directory in my apps templates directory like myapp/templates/admin/myapp/
  • Pull in change_form.html in the directory
  • 替换

    <0>0>->% > %}{>

iii

{# Use change permission only as read only #}
{% if has_change_permission and has_add_permission %}
{% block submit_buttons_bottom %}{% submit_row %}{% endblock %}
{% endif %}

如果除了标准行政表格之外还有其他办法,如果你只是想保护工作人员不受意外变化的数据的影响,这远远不是干净的,仍然允许用户改变数据。

我可以在这里看到所提议的答案,但你可能面临比你为紧急反应所需要的更多的问题,因为我已经尝试了上述所有答案。 我最后略去了这一点:

你在Django Admin Cookbook上发现的,是使你在创建/处理时想要的田野,但读到之后。 换言之,一旦你提出标的,无论你在这一方法中凌驾于哪一领域,该链接只能读到,一旦在数据库模型中添加,你就能够 。

这完全是老的,大多数人已经知道这一点,但...... Django 2.0 已经在view_permissions 上建立链接,与深入观察许可有关





相关问题
Can Django models use MySQL functions?

Is there a way to force Django models to pass a field to a MySQL function every time the model data is read or loaded? To clarify what I mean in SQL, I want the Django model to produce something like ...

An enterprise scheduler for python (like quartz)

I am looking for an enterprise tasks scheduler for python, like quartz is for Java. Requirements: Persistent: if the process restarts or the machine restarts, then all the jobs must stay there and ...

How to remove unique, then duplicate dictionaries in a list?

Given the following list that contains some duplicate and some unique dictionaries, what is the best method to remove unique dictionaries first, then reduce the duplicate dictionaries to single ...

What is suggested seed value to use with random.seed()?

Simple enough question: I m using python random module to generate random integers. I want to know what is the suggested value to use with the random.seed() function? Currently I am letting this ...

How can I make the PyDev editor selectively ignore errors?

I m using PyDev under Eclipse to write some Jython code. I ve got numerous instances where I need to do something like this: import com.work.project.component.client.Interface.ISubInterface as ...

How do I profile `paster serve` s startup time?

Python s paster serve app.ini is taking longer than I would like to be ready for the first request. I know how to profile requests with middleware, but how do I profile the initialization time? I ...

Pragmatically adding give-aways/freebies to an online store

Our business currently has an online store and recently we ve been offering free specials to our customers. Right now, we simply display the special and give the buyer a notice stating we will add the ...

Converting Dictionary to List? [duplicate]

I m trying to convert a Python dictionary into a Python list, in order to perform some calculations. #My dictionary dict = {} dict[ Capital ]="London" dict[ Food ]="Fish&Chips" dict[ 2012 ]="...