如何在django 1.10中获取当前的“用户名”?

时间:2017-01-19 06:59:21

标签: python django django-models django-admin

我正在尝试使用django 1.10中的当前用户名填充模型中的字段。

这是我正在使用的代码。

class Archivo(models.Model):
    nombre = models.CharField(max_length = 30)
    documento = models.FileField()
    fecha_creacion = models.DateField(default = timezone.now)
    observaciones = models.CharField(max_length = 20)
    usuario = models.CharField(User.get_username())
    transferencia = models.ForeignKey(User)

我想填补的字段是“usuario”

我收到了下一个错误: TypeError: get_username() missing 1 required positional argument: 'self'

我这样做错了吗?顺便说一句,我没有使用视图,我试图直接从管理站点执行此操作。

我发布此图片作为我正在尝试的示例,“Usuario”字段应自动填充“ROBERTO”......

Example

1 个答案:

答案 0 :(得分:2)

请将代码发布为文字而非图片。您无法添加此类用户名。您应该做的是为User模型创建ForeingKey或OneToOneField。在Archivo模型中输入用户名是错误的。然后,您的模型与Archivo模型之间没有明确的关系。这意味着您无法使用Django提供的用于处理相关模型的大量功能。

其次,如果用户名发生变化怎么办?您的archivo模型会发生什么?他们留下了悬挂。

Class Archivo(models.Model)
    usero = models.ForeignKey(User)
    ...

然后在您需要保存Archivo对象时,需要从request.user

中获取它。
if request.user.is_authenticate():

   arch = Archivo.objects.create(user=request.user, ... )