Django Rest Framework для вложенного сериализатора для вывода методом POST в формате json (уже удален только для чтения)

Ваше представление еще не создано, поэтому getView() имеет значение null, поэтому измените

calculate = (Button) getView().findViewById(R.id.calculate);
wattEdit = (EditText) getView().findViewById(R.id.wattEdit);
costEdit = (EditText) getView().findViewById(R.id.costEdit);
spinwatt = (Spinner)getView().findViewById(R.id.spinwatt);

на

calculate = (Button) v.findViewById(R.id.calculate);
wattEdit = (EditText) v.findViewById(R.id.wattEdit);
costEdit = (EditText) v.findViewById(R.id.costEdit);
spinwatt = (Spinner)v.findViewById(R.id.spinwatt);
2
задан Eshan Chattaraj 5 March 2019 в 05:15
поделиться

1 ответ

мы изменили часть кода, как в Model.py

class Attendance(models.Model):
    present = EnumField(choices=['Yes', 'No'])
    student = models.ForeignKey(User, on_delete=models.CASCADE)
    schedule = models.ForeignKey(Schedule, on_delete=models.CASCADE)

    def __str__(self):
        return self.present

В Serializer.py

[ 1116]
class ScheduleSerializers(serializers.ModelSerializer):
    class Meta:
        model = Schedule
        fields = "__all__"


class UserPartialSerializers(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'first_name')


class AttendanceSerializers(serializers.ModelSerializer):
    class Meta:
        model = Attendance
        fields = '__all__'


class AttendanceScheduleSerializers(serializers.ModelSerializer):
    schedule = ScheduleSerializers(many=False)
    student = UserSerializer(many=False)

    class Meta:
        model = Attendance
        fields = ('id', 'present', 'schedule', 'student',)

Самое необходимое - это View.py, где фактические данные сериализуются в требуемом формате, который мы на самом деле хотели

[1118 ]
class AttendanceView(APIView):

    def get(self, request, format=None):
        a_list = Attendance.objects.all()
        serializer = AttendanceScheduleSerializers(a_list, many=True)
        return Response(serializer.data)

    def post(self, request, format=None):
        present = request.data.get("present")
        schedule = request.data['schedule']['id']
        student = request.data['student']['id']
        data = {'student': student, 'schedule': schedule, 'present': present}
        serializer = AttendanceSerializers(data=data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
  
Следуя в Views.py необходимо импортировать выше

from api.serializers import UserSerializer,AttendanceSerializer, ScheduleSerializer, AttendanceScheduleSerializer

[ 1120] Наконец-то получил вывод

0
ответ дан Eshan Chattaraj 5 March 2019 в 05:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: