python - 向 serializer.data 添加额外参数
问题描述
我从 rest api 得到三个字段,即序列化程序中的姓名、电话号码和电子邮件 ID,但我想在收到 api 时也存储日期时间。在数据库中,我创建了 4 列,即姓名、电话号码、电子邮件 ID、创建数据。如何在将当前日期时间参数保存到 posgtresql 数据库表“table_userdetails”之前将其添加到我的 serializer.data 中。请帮我解答,因为我是新手
下面是views.py的代码
@api_view(['GET', 'POST'])
def UserInfo(request):
if request.method == 'GET':
snippets = UserDetails.objects.all()
serializer=UserDetailsSerializer(snippets, many=True)
return Response(serializer.data)
elif request.method =='POST':
context=datetime.datetime.now()
serializer = UserDetailsSerializer(data=request.data)
print("serializer",serializer)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
下面是 Models.py 的代码
class UserDetails(models.Model):
name=models.CharField(max_length=255)
mobile_no=models.CharField(max_length=255)
email_id=models.CharField(max_length=255)
user_id=models.IntegerField(primary_key=True)
created_date=models.CharField(max_length=255)
class Meta:
db_table=table_userdetails
def __str__(self):
return self.response
下面是我的 serializer.py 代码
class UserDetailsSerializer(serializers.ModelSerializer):
class Meta:
model=UserDetails
fields='__all__'
我已经在 post 方法中添加了上下文部分,但是如何添加 serializer.data 。请帮助我解决问题以及我在这里做错了什么。感谢任何帮助。谢谢
解决方案
您不需要现在直接设置时间,因为您可以使用auto_add_now
on DateTimeField
/ DateField
model 字段
在 CharField 中保持日期是没有意义的
为了进一步参考,您可以update()
在request.data
字典中添加附加属性,因为仅设置名为 context 的新变量什么都不做
推荐阅读
- sql - 无法将 sha256 哈希插入 SQLite3 表 - NodeJs
- python - 如何使用 for 循环将 3d 字典转换为一系列 2d 数据帧?
- node.js - RPC、IPC 还是其他?NodeJS 中的多进程架构
- python - 多处理(使用 concurrent.futures)附加列表
- xamarin.forms - 在 Google Developer's Console 上的何处注册重定向 URL?
- c# - 来自现有点、方向和距离的 3D 点
- javascript - Set 和 Get 访问器不适用于我的角度组件
- php - 涉及通过用户输入的 PHP 共享会话 ID 的安全性
- scala - 可预测地自动导出密封 ADT 的实例
- user-interface - 如何在 VS 2019 Indicator Margin 中恢复断点红点