我正在尝试使用 cqlengine 在 Cassandra 数据库中创建一个新条目,第一篇文章创建了一个新条目,但是当尝试创建另一个条目时,最后一个条目使用新值更新,在重新启动 Django 服务器后,它按预期工作(创建新条目)
我的模型是
# test model udt
class address(UserType):
name = columns.Text()
age = columns.Integer()
street = columns.Text()
zipcode = columns.Integer()
class TestUserProf(Model):
user_id = columns.UUID(primary_key=True, default=uuid.uuid4())
emp_id = columns.Text()
address = columns.UserDefinedType(address)
序列化器是
# Test serialzer for test udt
class TestProfSerializer(serializers.Serializer):
user_id = serializers.CharField(max_length=100, required=False)
emp_id = serializers.CharField(max_length=50)
user_addr = serializers.DictField(required=False, source='address')
def create(self, validate_data):
"""
Create new entry in ProfSerializer
:params validate_data
:return :
"""
addr_data = validate_data.get('address')
obj = TestUserProf.objects.create(
emp_id=validate_data.get('emp_id'),
address=address(
name=addr_data.get('name'),
age=addr_data.get('age'),
street=addr_data.get('street'),
zipcode=addr_data.get('zipcode')
)
)
return TestUserProf(**validate_data)
Django 视图是
# Test code for udt
class TestProfView(viewsets.ModelViewSet):
""" Test class of udf
:prams request
:return list of profils
"""
model = TestUserProf
serializer_class = TestProfSerializer
def get_queryset(self):
return TestUserProf.objects.all()
def create(self, request, *args, **kwargs):
serializer = TestProfSerializer(data=request.data)
try:
if serializer.is_valid():
serializer.save()
return Response({'status': 'success'})
else:
return Response({'status': 'not valid...'})
except Exception as e:
return Response({'error': str(e)})
发布数据是
{
"emp_id": "EMP112",
"user_addr": {
"street": "Kochin",
"name": "Thomas John",
"zipcode": 682021,
"age": 29
}
}
它返回成功,但是当试图创建一个新条目时,最后一个原始数据被更新,
重新启动Django服务器后,新条目正在正常创建,为什么会发生这种情况?