如何使用登录用户的用户名作为 django 字段中的默认(且不可编辑)值?
例如,假设我正在尝试记录一群人购买的元素。
我正在使用contrib.admin
因为它似乎可以满足我的大部分需求。
我这样定义购买的订单项:
class LineItem(models.Model):
name = models.CharField(max_length=40)
vendor = models.ForeignKey(Vendor)
buyer = <whoever logged this purchase>
date_ordered = models.DateField('date ordered', null=True)
date_delivered = models.DateField('date delivered', null=True)
price = models.DecimalField(null=True,
max_digits=9, decimal_places=2)
def __unicode__(self):
return self.name
如何转<whoever logged this purchase>
变成默认为登录用户名的内容?
附注我认为表达这个问题的另一种方式是:在 View ->数据库的连续体中,我应该在哪里获取用户名并将其存储?
最佳答案
您可以使用 User 模型作为 LineItem 模型中买家的外键。每当您在 LineItem 模型中保存数据时,在该 View 中,您都可以获取 request.user 作为登录用户并将其存储为该买家LineItem 对象。
在 LineItem 模型类中
buyer = models.ForeignKey(User)
在创建/更新 Lineitem 对象的 View 类/函数中(在 post 方法中),您可以执行以下操作
a_lineitem_object.buyer = request.user
a_lineitem_object.save()
关于python - 使用登录的用户名作为 django 中的字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26600742/