我的记录/ model.py是,
class HistoricalRecords(models.Model):
user = models.ForeignKey('User', on_delete=models.CASCADE, null=True, blank=True)
role = models.CharField(max_length=255, null=True, blank=True)
model = models.CharField(max_length=255, null=True, blank=True)
torque = models.IntegerField(null=True, blank=True)
car = models.TextField(null=True, blank=True)
date_time = models.DateTimeField(default=timezone.now)
我的记录/ serializer.py是
class SaveAuditRecordSerializer(serializers.ModelSerializer):
class Meta:
model = HistoricalRecords
fields = ('user', 'role', 'model', 'torque', 'car', 'date_time')
和我的记录/ views.py是,
def AuditRecord(request):
serializer = SaveAuditRecordSerializer(data=request, partial=True)
if serializer.is_valid():
serializer.save()
return Response(status=status.HTTP_201_CREATED)
return Response(serializer.errors,
status=status.HTTP_201_CREATED)
我试图从另一个应用程序的另一个视图中调用这个AuditRecord(req)
,比如
rec = {}
audit_record['user'] = request.user
audit_record['role'] = "Role"
audit_record['model'] = "M"
audit_record['torque'] = 22222
audit_record['action'] = "car created"
audit_record['date_time'] = datetime.now()
AuditRecord(audit_record)
我没有得到任何错误,但它没有得到保存到db我的approch有任何错误?
如果您的其他应用程序中有一个指向AuditRecord的模型,并且您想在其创建点上创建记录,则可以使用此其他应用程序的序列化程序来创建AuditRecord的实例。
OtherSerializer(serializers.Serializer):
audit_record = AuditRecordSerializer(required=False, write_only=True)
def create(self, validated_data):
audit_record_data = validated_data.pop('audit_record')
audit_record = AuditRecordSerializer().create(audit_record_data)
validated_data.update({'audit_record': audit_record})
return super(OtherSerializer, self).create(validated_data)