python - 如何保存在 django 管理站点中创建和修改记录的用户?

标签 python django django-models django-admin

我的 django 应用程序中有一个 ReportModel,其中有 2 个字段 create_user (代表创建报告的用户)和 write_user (代表最后修改报告的用户)。我想根据登录 django 管理站点的用户自动保存这两个字段。我怎么做? 这是模型的定义

class ReportModel(models.Model):


    name = models.CharField(verbose_name=_("Nombre"), max_length=50, blank=False, null=False)
    location = models.PointField(verbose_name=_("Localización"), srid=4326, blank=False, null=False)
    report_type_id = models.ForeignKey("ReportTypeModel", verbose_name=_("Tipo"),
                                                 blank=True, null=True, on_delete=models.SET_NULL,
                                                 related_name="reports")
    start_date = models.DateField(verbose_name=_("Fecha inicio"))
    end_date = models.DateField(verbose_name=_("Fecha fin"))
    create_user = models.ForeignKey(User, on_delete=models.CASCADE, 
                                   related_name='+', verbose_name=_('Creado por'), editable=False, null=True, blank=True)

    write_user = models.ForeignKey(User, on_delete=models.CASCADE, 
                                   related_name='+', verbose_name=_('Modificado por'), editable=False, null=True, blank=True)

    def __str__(self):
        return self.name

最佳答案

您可以覆盖序列化程序中的创建和更新方法。在调用父类(super class) update 和 create 方法之前的方法中,您可以从 request.user 中自行添加字段

类似的东西

def create(self, validated_data):
        """
        Overriding the default create method of the Model serializer.
        :param validated_data: data containing all the details of your model
        :return: returns a successfully created record
        """
        validated_data.update({"create_user": request.user})
        # call super class create method here by passing the modified validated_data
        return student

关于python - 如何保存在 django 管理站点中创建和修改记录的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67926861/

相关文章:

python - Pandas Dataframe Performance 应用带移位功能

用于访问变量属性的 Django 点查找语法

python - 使用dokku部署Django应用时收集静态配置错误

python - Django:更新整数字段

python-3.x - 当我们使用 Django(现有项目)进行身份验证并使用 FastAPI(新功能)进行 API 时,如何识别并保存正确的 "user"?

django - 在 django-admin 中过滤选择字段选项

django - 在 Django 部署中维护内容类型 pk 完整性

python - Wiki 喜欢 Django 模型

python - 如何使用 NamedTemporaryFile(何时关闭?)

python - 使用 Bokeh 日期时间轴绘制周数