使用Django中当前登录的用户自动填写ForeignKey(用户)

时间:2014-08-27 21:41:46

标签: python django django-models django-admin

我正在开发一个Django项目,用户将数据输入CharFields,但是为了组织数据,每个用户的帖子都标有自己的用户名。但是,目前,用户必须通过注册用户列表来查找其用户名。你可以想象这既不方便。有什么方法可以让用户字段自动确定当前登录的用户并用该用户的用户名填写该字段?

这是我的models.py文件:

class Post(models.Model):
    Post = models.CharField(max_length=7, unique=True)
    user = models.ForeignKey(User)

这是我对应的admin.py:

admin.site.register(StockTickerSymbol)

有什么办法可以将ForeignKey(用户)位设置为默认为当前登录的用户?谢谢。

1 个答案:

答案 0 :(得分:1)

只需向管理员添加类似的内容

即可
class YourAdmin(admin.ModelAdmin):
    def formfield_for_foreignkey(self, db_field, request, **kwargs):                
        if db_field.name == 'user': kwargs['queryset'] = User.objects.filter(user=request.user)