生年月日テーブルのユーザーモデルに1対1のフィールドがあります。 APIを完了し、それは私のウィンドウ8.1のラップトップで完全に動作します。だから私はMacの本である私の友人のラップトップに送る、彼は詳細を入力マイグレーションを行うが、彼はこのエラーを代わりに持っています。Django rest framework割り当てできません。Macのインスタンスエラーである必要があります
1:ValueError: "1"を割り当てることはできません: "BirthRecord2.userId"は "MyUser"インスタンスでなければなりません。
2:「1」を割り当てることはできません。「BirthRecord2.userId」は「MyUser」インスタンスでなければなりません。
私のラップトップでは、BirthRecordのuserIdフィールドにドロップダウンリストが表示され、ユーザーのリストが表示されます。しかし、私の友人のMacbookでは、それは既存のユーザーのドロップダウンを持っていないし、ドロップダウンの矢印を横に持っていません。
これは私のラップトップで示した方法です:https://imgur.com/a/n22DW
は、今私はそれもテーブルを削除し、再作成した後、私のラップトップ上で正常に動作などの問題が何であるかわかりませんよ。それとも、MacBookの問題ですか?
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