Нельзя устанавливать одновременно `read_only` и `required` в двух разных сериализаторах
Первый сериализатор:
class RecipeSerializer(serializers.ModelSerializer):
step_of_recipe = RecipeStepsSerializer(many=True,
required=False)
ingredients = serializers.StringRelatedField(many=True,
read_only=True) # <----
by_cook = serializers.StringRelatedField(read_only=True)
Второй сериализатор:
class RecipeCreateSerializer(serializers.ModelSerializer):
step_of_recipe = RecipeStepsSerializer(many=True,
required=True)
ingredients = serializers.StringRelatedField(many=True,
required=True) # <----
Traceback:
web_1 | File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
web_1 | File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
web_1 | File "<frozen importlib._bootstrap_external>", line 883, in exec_module
web_1 | File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
web_1 | File "/code/apps/recipe/urls.py", line 2, in <module>
web_1 | from apps.recipe.views.recipe import RecipeView, RecipeCreateView
web_1 | File "/code/apps/recipe/views/recipe.py", line 3, in <module>
web_1 | from apps.recipe.serializers.recipe import RecipeSerializer, RecipeCreateSerializer
web_1 | File "/code/apps/recipe/serializers/recipe.py", line 57, in <module>
web_1 | class RecipeCreateSerializer(serializers.ModelSerializer):
web_1 | File "/code/apps/recipe/serializers/recipe.py", line 61, in RecipeCreateSerializer
web_1 | ingredients = serializers.StringRelatedField(many=True,
web_1 | File "/usr/local/lib/python3.10/site-packages/rest_framework/relations.py", line 123, in __new__
web_1 | return cls.many_init(*args, **kwargs)
web_1 | File "/usr/local/lib/python3.10/site-packages/rest_framework/relations.py", line 143, in many_init
web_1 | list_kwargs = {'child_relation': cls(*args, **kwargs)}
web_1 | File "/usr/local/lib/python3.10/site-packages/rest_framework/relations.py", line 237, in __init__
web_1 | super().__init__(**kwargs)
web_1 | File "/usr/local/lib/python3.10/site-packages/rest_framework/relations.py", line 117, in __init__
web_1 | super().__init__(**kwargs)
web_1 | File "/usr/local/lib/python3.10/site-packages/rest_framework/fields.py", line 336, in __init__
web_1 | assert not (read_only and required), NOT_READ_ONLY_REQUIRED
web_1 | AssertionError: May not set both `read_only` and `required`
Как вы можете видеть, у меня есть два разных сериализатора, в первом из них поле ингредиентов является read_only, однако во втором - required. Имеет ли это какой-либо смысл, то есть у меня есть два разных сериализатора, и я не могу установить поля по-разному?