Я работал над этим некоторое время, и я был в тупике. Я читал документы ...
https://www.django-rest-framework.org/api-guide/relations/#nested -отношения
и до сих пор не могу понять, как это должно работать.
Если бы кто-нибудь мог помочь мне решить эту ошибку или объяснить, как это должно работать, я был бы очень рад получить некоторую помощь. Спасибо
Что я хочу:
- отправить ajax на django конечную точку api rest framework
- иметь django / DRF сохранить многие-ко-многим связанные данные в postgreSQL db
Что у меня есть:
TypeError: Session () получил неожиданный аргумент ключевого слова 'position_list'
models.py
class Pose(models.Model):
name = models.CharField(max_length=100, blank=False, default='')
def __str__(self):
return self.name
class SeshPoseList(models.Model):
order = models.PositiveIntegerField()
pose_fk = models.ForeignKey(Pose, on_delete=models.CASCADE)
class Session(models.Model):
session_name = models.CharField(max_length=100, blank=False, default='')
def __str__(self):
return self.name
serializers.py
class PoseSerializer(serializers.ModelSerializer):
class Meta:
model = Pose
fields = ('id', 'name')
class SeshPoseListSerializer(serializers.ModelSerializer):
def create(self, validated_data):
return Session.objects.create(**validated_data)
class Meta:
model = SeshPoseList
fields = ['order', 'pose_fk']
class SessionSerializer(serializers.ModelSerializer):
pose_list = SeshPoseListSerializer(many=True)
def create(self, validated_data):
return Session.objects.create(**validated_data)
class Meta:
model = Session
fields = ('id', 'session_name', 'pose_list')
views.py
@api_view(['GET', 'POST', 'PUT', 'DELETE'])
def session_list(request):
if request.method == 'POST':
seshSerializer = SessionSerializer(data=request.data)
if seshSerializer.is_valid():
seshSerializer.create(seshSerializer.validated_data)
return Response(seshSerializer.data, status=status.HTTP_201_CREATED)
print("sesh errors ---> ", seshSerializer.errors)
return Response(seshSerializer.errors, status=status.HTTP_400_BAD_REQUEST)