简体   繁体   English

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

[英]Modify admin.py so that it's only offering the current logged-in user for the models.ForeignKey(User)

I have a blog where more users should log in via admin-panel and publish some content. 我有一个博客,更多用户应通过admin面板登录并发布一些内容。 My problem is that i only want to allow the user to publish under his username. 我的问题是我只想允许用户以他的用户名发布。

My models.py: 我的models.py:

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

How should the admin.py or models.py be modified? 应该如何修改admin.py或models.py?

First, exclude the author field from the admin form. 首先,从管理表单中排除作者字段。 Then add the logged in user as author in the admin save_model method: 然后在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()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM