python - 使用登录的用户名作为 django 中的字段值

标签 python django

如何使用登录用户的用户名作为 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/

相关文章:

python - 如何在 Tornado 中为 websockets 使用 Python 3.5 风格的异步和等待?

html - 修改默认的 Django 登录页面

html - 在 Django 的 TextField 中禁用 HTML 转义

Django:模板中的嵌套变量

Python NumPy - FFT 和逆 FFT?

python - 用python请求模仿curl命令

python - 结束一天(日期时间)的最优雅方式是什么?

python - Django Queryset 用于连续查询 first_name 和 last_name 的全名

javascript - 语法错误 : expected expression, 得到 '&' (Django)

Python 正则表达式——3 个相邻的数字