Списки в настоящее время не поддерживаются при вводе HTML.в Django Rest API Framework - PullRequest
0 голосов
/ 08 июля 2019

Мой проект о системе университета.2 Пользовательские пользователи с именами Student и Professor определены, что наследует от Django User Model.Существует модель курса, которая имеет отношение ManyToMany к модели профессора, чтобы определить курсы и определить профессора для каждого курса.Я использовал CreateMixinModel, UpdateMixinModel, DestroyMixinModel для обновления, создания и удаления курсов.CRUD был применен правильно.Но возникла проблема с отображением информации профессора, и она просто вернула идентификатор профессора.Я использовал вложенный сериализатор в CourseCreateSErializer для отображения информации о профессоре рядом с информацией о курсе.И теперь я не могу редактировать объект курса.

Я хочу иметь возможность редактировать объект курса

models.py:

class Professor(models.Model):
    user = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
    professor_no = models.PositiveIntegerField()

    def get_full_name(self):
        return self.user.first_name

    def __unicode__(self):
        return self.user.first_name + " " + self.user.last_name

    def __str__(self):
        return self.user.first_name + " " + self.user.last_name


class Course(models.Model):
    professor = models.ManyToManyField(Professor)
    name = models.CharField(max_length=100)
    unit = models.PositiveIntegerField()

serializers.py:

class CustomUserSerializer(serializers.ModelSerializer):
    class Meta:
        model = CustomUser
        fields = ('first_name',
                  'last_name',
                  'identity_no',
                  'email')

    def create(self, validated_data):
        return CustomUser.objects.create(**validated_data)

class ProfessorDetailSerializer(serializers.ModelSerializer):
    user = CustomUserSerializer()
    class Meta:
        model = Professor
        fields = (
            'user',
            'professor_no'
        )

    def create(self, validated_data):
        return CustomUser.objects.create(**validated_data)

class CourseDetailSerializer(serializers.ModelSerializer):
    professor =ProfessorDetailSerializer(many=True)

    class Meta:
        model = Course
        fields = (
            'professor',
            'name',
            'unit',
        )

view.py:

class CourseDetailView(DestroyModelMixin, UpdateModelMixin, RetrieveAPIView):
    queryset = Course.objects.all()
    serializer_class = CourseDetailSerializer
    permission_classes = [IsAuthenticatedOrReadOnly]


    def put(self, request, *args, **kwargs):
        return self.update(request, *args, **kwargs)

    def delete(self, request, *args, **kwargs):
        return self.destroy(request, *args, **kwargs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...