제가 알고 있듯이 모델 관리자의 get_by_natural_key는 직렬화 해제에 사용되고 natural_key는 직렬화에 사용됩니다. 사실입니까? 차이점이 없다면?get_by_natural_key와 natural_key의 차이점
또한 --natural-foreign 및 --natural-primary 키를 항상 제공해야합니까? 자연 키를 통해 직렬화/직렬화를 강제로 수행 할 수있는 방법이 있습니까?
제가 알고 있듯이 모델 관리자의 get_by_natural_key는 직렬화 해제에 사용되고 natural_key는 직렬화에 사용됩니다. 사실입니까? 차이점이 없다면?get_by_natural_key와 natural_key의 차이점
또한 --natural-foreign 및 --natural-primary 키를 항상 제공해야합니까? 자연 키를 통해 직렬화/직렬화를 강제로 수행 할 수있는 방법이 있습니까?
Django는 직렬화에 get_by_natural_key
을 사용하고 직렬화에는 natural_key
을 사용합니다.
설명서에 언급 된대로 두 가지를 모두 정의 할 필요는 없습니다. 하나만 안전하게 사용할 수 있습니다.
코드 내에 자연 키를 사용하여 모델을 serialize해야하는 경우 serializers.serialize()
과 use_natural_foreign_keys=True
및/또는 use_natural_primary_keys=True
을 사용해야합니다. 당신이 직렬화해야하는 경우
/자연 키를 사용하여 일부 개체를 역 직렬화하고 admin.py dumpdata
다음 당신은 당신이 그들이 연재 될 것입니다하지 않는 경우 --natural-foreign
및/또는 --natural-primary
을 통과해야/기본 (비 자연) 행동 직렬화 복원.
dumpdata
의 자연어 키를 강제로 적용하려면 셸 별칭을 만들면됩니다.
고급 모델 직렬화/역 직렬화가 필요한 경우 Django REST Framework serializers과 같은 외부 구성 요소를 사용하거나 직접 작성하는 것이 좋습니다.