2016年10月9日星期日

django 多用户设置

对于添加文章之后,想每个用户只维护他们自己的文章,对于这个需求,django admin的全局权限设置做不到,需要在数据库中增加识别字段,例如
使用用户识别,
添加用户字段
models.py
from django.contrib.auth.models import User
author = models.ForeignKey(User,on_delete=models.CASCADE,editable=False)

admin.py
def get_queryset(self,request):
        qs = super(AuthorAdmin,self).get_queryset(request)
        if request.user.is_superuser:
            return qs
        return qs.filter(author=request.user)
    def save_model(self,request,obj,form,change):
        obj.author = request.user
        obj.save()


这样,就可以在后台每个用户维护自己的文章了。

没有评论:

发表评论