【发布时间】:2020-08-26 08:41:22
【问题描述】:
我有以下型号:
class Address(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
....
class Meta:
abstract = True
class BillingAddress(Address):
is_default = models.BooleanField()
...
class Meta:
db_table = 'billing_address'
我正在尝试为 BillingAddress 构建一个序列化程序:
class AddressSerializer(serializers.ModelSerializer):
class Meta:
abstract = True
model = AddressModel
class BillingAddressSerializer(AddressSerializer):
def to_representation(self, obj):
return AddressSerializer(obj, context=self.context).to_representation(obj)
class Meta(AddressSerializer.Meta):
model = UserBillingAddress
fields = (
'id',
'is_default',
)
我不断得到:
ValueError: Cannot use ModelSerializer with Abstract Models.
如何构建我的 BillingAddressSerializer 以反映这两个类?
【问题讨论】:
-
我不确定,但也许可以尝试将
abstract = False放在BillingAddressSerializer的Metaclass 中?
标签: django django-rest-framework django-serializer