Я довольно новичок в Django Rest Framework
(также Джанго).
У меня есть Budget
, и у каждого Budget
будет свой Series
.Всякий раз, когда я возвращаю Budget
, я возвращаю соотношение Series
:
BudgetSerializer
class BudgetSerializer(ModelSerializer):
series = SeriesSerializer()
class Meta:
model = Budget
fields = ('id',
'date',
'created_at',
'document_number',
'total',
'document_type',
'series', 'hash', 'hash_control')
SeriesSerializer
class SeriesSerializer(ModelSerializer):
fiscal_entity = FiscalEntitySerializer()
class Meta:
model = Series
fields = ('id',
'created_at',
'series_prefix',
'document_type',
'starts_in',
'fiscal_entity')
Всякий раз, возвращая Budget
, он идет с Series
, как и предполагалось, но всякий раз, когда я пытаюсь создать новый Budget
, он выдает ошибку Series field is required
.Я предполагаю, что DRF ожидает, что целый новый объект Series
сможет создать этот новый Series
, но я не хотел бы создавать новый Series
, но ссылаться на существующий его id
.
Что-то вроде:
curl -X POST \
http://localhost:8081/v1/budget/ \
-H 'Accept: application/json' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Postman-Token: 5755d65e-a159-45c9-949e-14724ace41d5' \
-H 'Token: 5D4kFFiXjXeOwM4rrA3xwhL8hYnzK9XXQMo1Fym_suDiTEOdznoYlebaT78F9NUnAE_xobAXuT8leLwZy1acaFZ5yAubqhxbx99xvw4ucHNhd1HMEtLhshO0' \
-H 'cache-control: no-cache' \
-d 'date=2019-02-04&document_number=0202&total=221.23&series=0e4e6251b43849d390bca19c7b722e4d&document_type=PF&created_at=2020-02-04%2023%3A50%3A25&last_document_hash_control=h2kY3j0B%2BO2bF2n5zLzvYLGcpf2OeidqY7GCsG2gusvooqoAJUclCykJz8GqaAqq76rbQYb9ICJRZAd0fXGYYH%2Fi6yox%2FJY0k8YRPGlYLANyqJCMxio80sR%2BZONgH%2FrTk0fykwX4q2%2BuMs7qCOXbksY%2FFB773NJYMWjQz1Jo%2BrI%3D'
Я пробовал несколько подходов как series = SeriesSerializer(read_only=True)
в BudgetSerializer
и другие подходы, которые, кажется, не работают.
Может ли более опытный разработчик объяснить, почему DRF ждет нового Series
и почему мы не можем просто ссылаться на существующий по его id