我有一个博客,更多用户应该通过管理员面板登录并发布一些内容。 我的问题是我只想让用户在他的用户名下发布。
我的models.py:
class Post(models.Model):
author = models.ForeignKey(User)
...
如何修改admin.py或models.py?
答案 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()