Django Rest Framework : RetrieveUpdateAPIView
Я хочу добавить несколько данных в базу данных с помощью RetrieveUpdateAPIView и не могу добавить эти данные в базу данных. Как я могу обновить все даты в одном методе Patch.
Мое мнение таково
class CompanyDetailViewAPI(RetrieveUpdateAPIView):
queryset = Companies.objects.all()
serializer_class = CompanyDetailsSerializer
permission_classes = [IsAuthenticated]
authentication_classes = [JWTAuthentication]
lookup_field = "id"
а мой сериализатор имеет вид
class KeyPersonsSerializer(serializers.ModelSerializer):
class Meta:
model = KeyPersons
fields = [
"id",
"person_name",
"designation",
"email",
"contact_number",
]
class CompanyDetailsSerializer(serializers.ModelSerializer):
key_person = KeyPersonsSerializer(many=True)
class Meta:
model = Companies
fields = [
"id",
"address_line_1",
"address_line_2",
"city",
"landmark",
"state",
"country",
"pincode",
"website",
"person_name",
"designation",
"email",
"phone",
"ho_email",
"ho_contact_number",
"company_registration_no",
"gst_no",
"key_person",
"company_corporate_presentation",
"about_company",
"company_established_date",
"no_of_facilities",
"no_of_employees",
]
I have tried this but I cant see any result.
How can I update this all date in single Patch method
Вы можете использовать один запрос Patch для обновления данных в базе данных. Вам нужно будет использовать пользовательский сериализатор, чтобы включить все поля, которые вы хотите обновить. Вот пример того, как это можно сделать:
class CompanyDetailViewAPI(RetrieveUpdateAPIView):
queryset = Companies.objects.all()
serializer_class = CompanyDetailsSerializer
permission_classes = [IsAuthenticated]
authentication_classes = [JWTAuthentication]
lookup_field = "id"
class CompanyDetailsSerializer(serializers.ModelSerializer): key_person = KeyPersonsSerializer(many=True)
class Meta:
model = Companies
fields = [
"id",
"address_line_1",
"address_line_2",
"city",
"landmark",
"state",
"country",
"pincode",
"website",
"person_name",
"designation",
"email",
"phone",
"ho_email",
"