カスタムフィールド(非モデルフィールド)をDjangoモデルに含めることは可能ですか?たとえば、私は次のモデルを持っています:Djangoモデルのカスタムフィールド
class Patient(models.Model):
firstName = models.CharField(max_length=100, blank=True, default='')
lastName = models.CharField(max_length=100, blank=True, default='')
occupation = models.CharField(max_length=100, blank=True, default='')
gender = models.CharField(max_length=50, blank=True, default='')
dateOfBirth = models.DateField(blank=True, default=date.today)
address = AddressField(blank=True, null=True)
アドレスは非モデルフィールドです。私はこのシリアライザをも持っている:
class PatientSerializer(serializers.Serializer):
firstName = serializers.CharField()
lastName = serializers.CharField()
occupation = serializers.CharField()
gender = serializers.CharField()
dateOfBirth = serializers.DateField()
address = serializers.SerializerMethodField()
def create(self, validated_data):
"""
Create and return a new patient
"""
return Patient.objects.create(**validated_data)
def get_address(self, obj):
return obj.address
私は私のシリアライザでSerializerMethodFieldとして設定しようとしたが、これは正しく動作していない、アドレスは常にnullです。 私はmongodbデータベースを使っているので、ちょうど情報として、私はDjango-nonrelを使用しています。
AddressFieldとは何ですか? – masnun
プライベート開発者(https://github.com/furious-luke/django-address)が開発したクラスです。 – Spider