Django 实现Admin自动填充当前用户的示例代码
model.py
importdatetime fromdjango.contrib.auth.modelsimportUser fromdjango.dbimportmodels classEntry(models.Model): title=models.CharField(max_length=250) slug=models.SlugField() pub_date=models.DateTimeField(default=datetime.datetime.now) author=models.ForeignKey(User,related_name='entries') summary=models.TextField(blank=True) body=models.TextField() classMeta: get_latest_by='pub_date' ordering=('-pub_date',) verbose_name_plural='entries' def__unicode__(self): returnself.title defget_absolute_url(self): return"/weblog/%s/%s/"%(self.pub_date.strftime("%Y/%b/%d"), self.slug)
admin.py
fromdjango.contribimportadmin fromblog.modelsimportEntry classEntryAdmin(admin.ModelAdmin): exclude=('author',) list_display=('title','pub_date','author') prepopulated_fields={'slug':['title']} defhas_change_permission(self,request,obj=None): has_class_permission=super(EntryAdmin,self).has_change_permission(request,obj) ifnothas_class_permission: returnFalse ifobjisnotNoneandnotrequest.user.is_superuserandrequest.user.id!=obj.author.id: returnFalse returnTrue defqueryset(self,request): ifrequest.user.is_superuser: returnEntry.objects.all() returnEntry.objects.filter(author=request.user) defsave_model(self,request,obj,form,change): ifnotchange: obj.author=request.user obj.save() admin.site.register(Entry,EntryAdmin)
参考链接:https://www.b-list.org/weblog/2008/dec/24/admin/
以上这篇Django实现Admin自动填充当前用户的示例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。