출생 기록 테이블의 사용자 모델에 일대일 필드가 있습니다. API를 완료하면 내 Window 8.1 노트북에서 완벽하게 작동합니다. 그래서 맥 책 인 내 친구의 노트북으로 보내면, 마이 그 레이션이 세부 정보를 입력하게되지만 대신이 오류가 발생합니다.Django rest framework 할당 할 수 없습니다. Mac의 인스턴스 오류 여야합니다
1 : ValueError : "1"을 할당 할 수 없습니다. "BirthRecord2.userId"는 "MyUser"인스턴스 여야합니다.
2 : "1"을 할당 할 수 없습니다. "BirthRecord2.userId"는 "MyUser"인스턴스 여야합니다.
내 랩톱에서 BirthRecord의 userId 필드는 사용자 목록을 표시하는 드롭 다운 목록이 있습니다. 그러나 내 친구의 맥북에서는 기존 사용자의 드롭 다운이 없으며 옆에 드롭 다운의 화살표가 있습니다.
https://imgur.com/a/n22DW 지금 내가조차 삭제하고 테이블을 다시 후 내 컴퓨터에서 잘 작동으로 문제가 무엇인지 확실하지 오전 : 내 노트북에하는 방법을 보여줍니다
이다. 아니면 그냥 맥북 문제입니까?
models.py
class MyUser(AbstractUser):
userId = models.AutoField(primary_key=True)
gender = models.CharField(max_length=6, blank=True, null=True)
nric = models.CharField(max_length=9, blank=True, null=True)
def __str__(self):
return self.username
class BirthRecord(models.Model):
userId = models.OneToOneField(MyUser, to_field='userId', on_delete=models.CASCADE, primary_key=True)
durOfGes = models.CharField(max_length=100,blank=True,null=True)
modeOfDelivery = models.CharField(max_length = 100, blank = True, null= True)
weightAtBirth = models.FloatField(blank = True, null= True)
heightAtBirth = models.FloatField(blank = True, null= True)
headCirAtBirth = models.FloatField(blank = True, null= True)
serializer.py
class MyUserSerializer(serializers.ModelSerializer):
valid_time_formats = ['%H:%M', '%I:%M%p', '%I:%M %p']
birthTime = serializers.TimeField(format='%I:%M %p', input_formats=valid_time_formats, allow_null=True, required=False)
class Meta:
model = MyUser
fields = ('userId', 'username', 'email', 'first_name', 'last_name', 'gender', 'nric',)
read_only_fields = ('userId',)
# extra_kwargs = {"password": {"write_only": True}}
def update(self, instance, validated_data):
for attr, value in validated_data.items():
if attr == 'password':
instance.set_password(value)
else:
setattr(instance, attr, value)
instance.save()
return instance
class BirthRecordSerializer(serializers.ModelSerializer):
class Meta:
model = BirthRecord
fields = ('userId', 'durOfGes', 'modeOfDelivery', 'weightAtBirth', 'heightAtBirth', 'headCirAtBirth')
views.py
: 나에게도와주세요 여기 내 코드입니다
class MyUserViewSet(viewsets.ModelViewSet):
permission_classes = [AllowAny]
queryset = MyUser.objects.all()
serializer_class = MyUserSerializer
filter_backends = (filters.SearchFilter,)
search_fields = ('=userId', 'username', 'email', 'first_name', 'last_name')
class BirthRecordViewSet(viewsets.ModelViewSet):
permission_classes = [AllowAny]
queryset = BirthRecord.objects.all()
serializer_class = BirthRecordSerializer