我正在尝试使用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”......
答案 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, ... )