这是models.py
from django.db import models
class Iot(models.Model):
user = models.CharField(max_length="50")
email = models.EmailField()
这是我的views.py
def Test(request):
if request.method == 'PUT':
user = request.data['user']
email = request.data['email']
try:
s = Iot.objects.create(user=user)
print s.user
s.email = email
s.save()
return Response('ok', status=status.HTTP_200_OK)
except:
return Response('error',status=status.HTTP_400_BAD_REQUEST)
我正在使用django rest_framework。当我发送数据时,它不存储在数据库中并返回:
( '错误',状态= status.HTTP_400_BAD_REQUEST)
答案 0 :(得分:0)
很可能是因为您尝试在没有电子邮件的情况下创建Iot而发生错误,但它是必填字段。 你应该做点什么
Iot.objects.create(user=user, email=email)
要使您的代码以您选择的方式工作(逐个设置属性而不是一次设置),您需要摆脱创建并执行以下操作:
s = Iot(user=user)
s.email = email
s.save()
有两种不同的方法可以根据请求在模型中创建实体。在里面创建调用save()方法,所以它们完全相同,但在这种情况下创建更方便。
通常你应该避免使用create()然后save(),因为它会向DB显示两个查询。
UPD:+1给@ Daniel关于异常的评论