修改admin.py,使其仅提供models.ForeignKey(用户)的当前登录用户

时间:2013-10-10 09:25:08

标签: django django-models django-admin

我有一个博客,更多用户应该通过管理员面板登录并发布一些内容。 我的问题是我只想让用户在他的用户名下发布。

我的models.py:

class Post(models.Model):
    author = models.ForeignKey(User)
    ...

如何修改admin.py或models.py?

1 个答案:

答案 0 :(得分:2)

首先,exclude来自管理表单的作者字段。然后在admin save_model方法中将登录用户添加为作者:

class PostAdmin(admin.ModelAdmin):
    exclude = ['author',]

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