相关疑难解决方法(0)

如何将当前登录的用户指定为模型字段的默认值?

我想做这样的事情:

class Task(models.Model):
    ...
    created_by = models.ForeignKey(User, **default=[LoggedInUser]** blank=True, null=True, related_name='created_by')
Run Code Online (Sandbox Code Playgroud)

这可能吗?除了在视图中执行request.user之外,我无法找到获取登录用户的正确方法,这在此处似乎不起作用.

PS_我意识到我可以通过其他方式初始化Model数据,但我认为这是最干净的方法.

django django-models

14
推荐指数
3
解决办法
1万
查看次数

Django模型中的request.user

我正在使用Django模型为表单创建字段.我希望自动检测用户的用户名并填写,这样我就可以将其隐藏在我的表单中(而不是让他们从包含每个用户名的长列表中选择他们的用户名).为此,我使用:

current_user = request.user
Run Code Online (Sandbox Code Playgroud)

然后将默认值设置为current_user.但是,我不断收到此错误:

NameError: name 'request' is not defined
Run Code Online (Sandbox Code Playgroud)

我假设你不能在Django模型中使用请求,但无论如何都可以解决这个问题?这是我的models.py文件的相关部分:

class StockTickerSymbol(models.Model):
    StockName = models.CharField(max_length=7, unique=True)
    current_user = request.user
    user = models.ForeignKey(User, default=current_user)
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何在我的模型中使用请求,或以某种方式调用变量current_user?

python django django-models

7
推荐指数
1
解决办法
7373
查看次数

标签 统计

django ×2

django-models ×2

python ×1