我有一个博客,更多用户应该通过管理面板登录并发布一些内容。我的问题是我只想允许用户在他的用户名下发布。
我的模型.py:
class Post(models.Model):
author = models.ForeignKey(User)
...
admin.py 或 models.py 应该如何修改?
我有一个博客,更多用户应该通过管理面板登录并发布一些内容。我的问题是我只想允许用户在他的用户名下发布。
我的模型.py:
class Post(models.Model):
author = models.ForeignKey(User)
...
admin.py 或 models.py 应该如何修改?
首先,从管理表单中排除作者字段。然后在 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()