Ваше представление еще не создано, поэтому 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);
мы изменили часть кода, как в 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)
from api.serializers import UserSerializer,AttendanceSerializer, ScheduleSerializer, AttendanceScheduleSerializer