Tôi có một mô hình nhưSuppress "lĩnh vực phải là duy nhất" lỗi trong khuôn khổ Django REST của
class MyModel(models.Model):
uuid = models.CharField(max_length=40, unique=True)
và một serializer
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ('uuid')
Và tôi muốn nhận JSON với đối tượng MyModel nhưng nó có thể các đối tượng hiện có. Vì vậy, khi tôi sử dụng serializer.is_valid()
với dữ liệu về đối tượng hiện nó mang lại cho tôi một lỗi:
for record in request['records']:
# request - body of JSON request,
# 'records' - array of records I want to add or update
serializer = MyModelSerializer(data=record)
if serializer.is_valid():
# Do stuff
serializer.save()
Lỗi:
{"uuid":["This field must be unique."]}
Có cách nào để tách hành vi cho các đối tượng mới và hiện có? Đặc biệt, tôi muốn tạo đối tượng MyModel
mới nếu nó chưa phải là cơ sở dữ liệu và cập nhật đối tượng hiện có MyModel
nếu có.
Bạn có thể thêm mã bạn đang sử dụng để làm việc với các serializer (thường là xem) cho câu hỏi? –
Đã thêm, nhưng thông tin vô dụng vì tôi đã mô tả - vấn đề nằm trong hàm is_valid(). –
Bạn có thể thêm mã xem API hoàn chỉnh của mình không? Có lẽ bạn đang sử dụng một yêu cầu POST để tạo và cập nhật một cá thể? – Fiver