-
创建模型 models.py
from django.db import models class Call(models.Model): ordernum = models.CharField( "工单号", max_length=200, default="",) -
admin.py
from django.contrib import admin from . import models def add_delete_permission(request): group_name = request.user.groups.first().name if group_name == "风控": return False return True class CallAdmin(admin.ModelAdmin): def has_add_permission(self, request): return add_delete_permission(request) def has_delete_permission(self, request, obj=None): return add_delete_permission(request) admin.site.register(models.Call, CallAdmin) -
tests.py 使用mock来减少创建用户、组及将用户加入组中的代码
from django.test import TestCase from . import models from django.contrib.admin.sites import AdminSite from .admin import CallAdmin from unittest import mock class CallAdminTests(TestCase): def setUp(self): self.call_admin = CallAdmin(model=models.Call, admin_site=AdminSite()) self.OurRequest = mock.Mock() self.OurRequest.user.groups.first.return_value.name = '风控' def test_has_add_permission(self): self.assertEquals(self.call_admin.has_add_permission(self.OurRequest), False) def test_has_delete_permission(self): self.assertEquals(self.call_admin.has_delete_permission(self.OurRequest), False) -
项目下 urls.py
from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), ]
django admin test
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- cmdb/urls.py from cmdbapp import machinaroomviews,serverv...
- Django1.11版本的官方教程翻译。 在这篇教程中,我们将设置你的数据库,创建你的第一个模型,并快速介绍Dja...