Django自动插入登录用户用户名

在Django管理界面中我想在发布时自动插入登录用户名和博客文章,目前我已经在每个用户的下拉菜单中显示每个用户选择但显然这不是很好,所以我想它自动输入这个。自动插入登录用户用户名在Django

这里是我的代码:

models.py

从django.db进口车型 从django.contrib.auth.models导入用户

# Create your models here. 
class Post(models.Model): 
    title = models.CharField(max_length=200) 
    body = models.TextField() 
    published_date = models.DateTimeField('date published') 
    author = models.ForeignKey(User, db_column="published_who") 

    def __unicode__(self): 
     return self.title 

admin.py

from blog.models import Post 
from django.contrib import admin 

class PostAdmin(admin.ModelAdmin): 

    def save_model(self, request, obj, form, change): 
     obj.author = request.user 
     obj.save() 

admin.site.register(Post, PostAdmin)

上面方法在修改的时候会报错,可尝试下面方法:

# 重写   修改、添加
    def save_model(self, request, obj, form, change):

        if change:
            """ 重写 修改按钮 """
            super().save_model(request, obj, form, change)
            UserInfo.objects.filter(pk=obj.id).update(username=obj.username)
        else:
            """ 重写 添加按钮   如果你的username有加唯一标识 就不要继承save_model了,会出重复的报错"""
            UserInfo.objects.create(username=obj.username)

 

posted @ 2023-04-03 11:42  super_ip  阅读(29)  评论(0编辑  收藏  举报