Django : 데이터베이스에 JSON POST 데이터 추가

Bastien

정육점 용 API를 만들려고합니다. 이 API와 다음에 구축 할 웹 사이트를 통해 클라이언트는 원격으로 주문을 할 수 있습니다. 여기 내 문제가 있습니다. 주문 양식을 통해 클라이언트는 다음과 같은 JSON 데이터를 보냅니다.

{
    "user": 8,
    "orderDay": "2020-06-24",
    "deliveryDay": "2020-06-30",
    "deliveryAddress": "Place des Fêtes",
    "comment": "",
    "orderDetail": 
    [
        {
            "product": 2,
            "byProduct": 2,
            "quantity": 43
        },
        {
            "product": 3,
            "byProduct": 3,
            "quantity": 5
        }
    ]
}

이러한 데이터는 데이터베이스에 저장되어야합니다. 다음은 내가 사용하는 모델입니다. models.py

class order(models.Model):
    user = models.ForeignKey(memberArea, on_delete=models.CASCADE)
    comment = models.TextField(null=True, blank=True)
    orderDay = models.DateTimeField(auto_now_add=True)
    deliveryDay = models.DateField()
    deliveryAddress = models.CharField(max_length=255)
    state = models.CharField(max_length=255)
    price = models.TextField(null=True, blank=True)
    response = models.TextField(null=True, blank=True)

class orderDetail(models.Model):
    order = models.ForeignKey(order, on_delete=models.CASCADE)
    product = models.ForeignKey(product, on_delete=models.CASCADE)
    byProduct = models.ForeignKey(byProduct, on_delete=models.CASCADE)
    quantity = models.CharField(max_length=255)

class product(models.Model):
    name = models.CharField(max_length=255)
    prix_uni = models.TextField(null=True, blank=True)
    prix_kg = models.TextField(null=True, blank=True)
    dispo = models.BooleanField(null=True, blank=True)
    category = models.ForeignKey(category, on_delete=models.CASCADE)
    redu = models.TextField(null=True, blank=True)

class byProduct(models.Model):
    product = models.ForeignKey(product, on_delete = models.CASCADE)
    name = models.CharField(max_length=255)

serializer.py 와 같은 serializer 파일을 만듭니다.

class orderDetailSerializer(serializers.ModelSerializer):

    order = serializers.PrimaryKeyRelatedField(many=False, queryset = order.objects.all())

    class Meta:
        model = orderDetail
        fields = '__all__'

class OrderSerializer(serializers.ModelSerializer):

    orderDetail = orderDetailSerializer(many=True)

    class Meta:
        model = order
        fields = ['user', 'comment', 'deliveryAddress', 'deliveryDay', 'orderDetail']

    def create(self, validated_data):
            order_detail_data = validated_data.pop('orderDetail')
            new_order = order.objects.create(**validated_data)
            new_order.save()
            for product in order_detail_data:
                order_detail = orderDetail.objects.create(order=new_order, **product)
                new_order.orderDetail.add(order_detail.id)
            
            return new_order

그리고 이것은 내 견해입니다 : views.py :

#Make an order
@api_view(['POST'])
def order(request, format=None):
    if request.method == 'POST':
        serializer = OrderSerializer(data=request.data)
        data = {}
        if serializer.is_valid():
            serializer.save()
            data['response'] = "Your order went well"
            return Response(data)
        return Response(serializer.errors)

코드를 실행하려고하면 주문 데이터가 누락되었다는 메시지가 표시됩니다.

{
    "orderDetail": [
        {
            "order": [
                "This field is required."
            ]
        },
        {
            "order": [
                "This field is required."
            ]
        }
    ]
}

필요한 order_id가 orderDetail과 동시에 생성되기 때문에 추가하는 방법을 모르겠습니다. 도와 주셔서 미리 감사드립니다.

유네스 모 라디

당신은 order필드 readonly만들어야 합니다 orderDetailSerializer:

class orderDetailSerializer(serializers.ModelSerializer):

    class Meta:
        model = orderDetail
        fields = '__all__'
        read_only_fields = ('order',)
        

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

데이터베이스에 데이터 추가 및 JSON 사용

분류에서Dev

Django Python POST 메서드가 데이터베이스에 쓰지 않음

분류에서Dev

Python Flask-sqlite 데이터베이스에 POST 데이터 추가

분류에서Dev

django의 request.POST에 추가 데이터 추가

분류에서Dev

Django에서 생성 된 sqlite 데이터베이스에 데이터 추가

분류에서Dev

데이터베이스 django에 행 추가

분류에서Dev

Django가 데이터베이스로 데이터 보내기 : NOT NULL 제약 조건 실패 : sms_post.author_id

분류에서Dev

JSON에 데이터 추가

분류에서Dev

Django에서 json 데이터로 모델 (데이터베이스) 채우기

분류에서Dev

PHP가 데이터베이스에 POST 데이터를 삽입하지 않음

분류에서Dev

POST가 데이터베이스에 데이터를 삽입하지 않음

분류에서Dev

Django는 HTML 페이지에서 데이터베이스에 데이터를 추가합니다.

분류에서Dev

데이터베이스 django postgresql에 데이터가 표시되지 않음

분류에서Dev

Firebase 데이터베이스에서 JSON 데이터에서 값 가져 오기

분류에서Dev

Django : 양식이 데이터베이스에 추가되지 않음

분류에서Dev

내 양식이 데이터베이스에 데이터를 추가하지 않습니다-Django

분류에서Dev

데이터베이스에 저장된 JSON을 JSON 문자열에 추가

분류에서Dev

Django의 추가 비 모델 데이터베이스 연결

분류에서Dev

Django listview는 데이터베이스에 추가 된 최근 데이터를 표시하지 않습니다.

분류에서Dev

django는 postgres 데이터베이스에 모델 필드 수동 추가

분류에서Dev

데이터베이스에 쿼리하는 동안 json에 요소 추가

분류에서Dev

데이터베이스에 쿼리하는 동안 json에 요소 추가

분류에서Dev

Android 앱 데이터베이스 데이터가 표시되지 않음 (localhost에서 JSON 데이터 검색)

분류에서Dev

swiftyJSON 및 sqlite.swift를 사용하여 json 기반 데이터를 sqlite 데이터베이스에 추가

분류에서Dev

JSON 데이터 Swift 추가

분류에서Dev

Firebase 데이터베이스 Android 용 JSON 트리에 노드 추가

분류에서Dev

Ruby 데이터베이스에 추가

분류에서Dev

관계형 데이터베이스 모델의 Django POST 방법

분류에서Dev

Django로 JSON 데이터 가져 오기

Related 관련 기사

  1. 1

    데이터베이스에 데이터 추가 및 JSON 사용

  2. 2

    Django Python POST 메서드가 데이터베이스에 쓰지 않음

  3. 3

    Python Flask-sqlite 데이터베이스에 POST 데이터 추가

  4. 4

    django의 request.POST에 추가 데이터 추가

  5. 5

    Django에서 생성 된 sqlite 데이터베이스에 데이터 추가

  6. 6

    데이터베이스 django에 행 추가

  7. 7

    Django가 데이터베이스로 데이터 보내기 : NOT NULL 제약 조건 실패 : sms_post.author_id

  8. 8

    JSON에 데이터 추가

  9. 9

    Django에서 json 데이터로 모델 (데이터베이스) 채우기

  10. 10

    PHP가 데이터베이스에 POST 데이터를 삽입하지 않음

  11. 11

    POST가 데이터베이스에 데이터를 삽입하지 않음

  12. 12

    Django는 HTML 페이지에서 데이터베이스에 데이터를 추가합니다.

  13. 13

    데이터베이스 django postgresql에 데이터가 표시되지 않음

  14. 14

    Firebase 데이터베이스에서 JSON 데이터에서 값 가져 오기

  15. 15

    Django : 양식이 데이터베이스에 추가되지 않음

  16. 16

    내 양식이 데이터베이스에 데이터를 추가하지 않습니다-Django

  17. 17

    데이터베이스에 저장된 JSON을 JSON 문자열에 추가

  18. 18

    Django의 추가 비 모델 데이터베이스 연결

  19. 19

    Django listview는 데이터베이스에 추가 된 최근 데이터를 표시하지 않습니다.

  20. 20

    django는 postgres 데이터베이스에 모델 필드 수동 추가

  21. 21

    데이터베이스에 쿼리하는 동안 json에 요소 추가

  22. 22

    데이터베이스에 쿼리하는 동안 json에 요소 추가

  23. 23

    Android 앱 데이터베이스 데이터가 표시되지 않음 (localhost에서 JSON 데이터 검색)

  24. 24

    swiftyJSON 및 sqlite.swift를 사용하여 json 기반 데이터를 sqlite 데이터베이스에 추가

  25. 25

    JSON 데이터 Swift 추가

  26. 26

    Firebase 데이터베이스 Android 용 JSON 트리에 노드 추가

  27. 27

    Ruby 데이터베이스에 추가

  28. 28

    관계형 데이터베이스 모델의 Django POST 방법

  29. 29

    Django로 JSON 데이터 가져 오기

뜨겁다태그

보관