且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Django代理模型权限不显示

更新时间:2023-12-01 13:16:04

原来我没有做错什么。我正在寻找



myapp |新请求|可以添加新的请求



权限属于父模型。



myapp |参与|可以添加新的请求


I extended Django admin site for my app to allow non-staff/superusers access. This is working just fine.

I created a proxy model for an existing model and registered it to my admin site, however, it doesn't appear for non-staff users. From the documentation I read, my understanding is that proxy models get their own permissions. I checked and these don't appear in the list of available permissions.

Here's my code in case it helps:

Normal Model

class Engagement(models.Model):
    eng_type = models.CharField(max_length=5)
    environment = models.CharField(max_length=8)    
    is_scoped = models.BooleanField()    

    class Meta:
        ordering = ['eng_type', 'environment']
        app_label = 'myapp'

Proxy Model

class NewRequests(Engagement):
    class Meta:
        proxy = True
        app_label = 'myapp'
        verbose_name = 'New Request'
        verbose_name_plural = 'New Requests'

Model Admin

class NewRequestsAdmin(ModelAdmin):
pass

def queryset(self, request):
    return self.model.objects.filter(is_scoped=0)

Custom Admin Registration

myapps_admin_site.register(NewRequests, NewRequestsAdmin)

I've been managing my DB with South. According to this post, you have to tamper with it a bit by following the instructions it points users to. This was a failure. My DB doesn't have a whole lot of info in it, so I uncommented South and ran a regular syncdb to rule out South. Unfortunately, this is still not working and I'm at a loss. Any help is appreciated.

Edit

This was on Django 1.4

Turns out I didn't do anything wrong. I was looking for the permissions under

myapp | New Request | Can add new request

Permissions fall under the parent model.

myapp | engagement | Can add new request