获取Django中null ForeignKey的默认值
如何在Django中获取null ForeignKey的默认值。例如:获取Django中null ForeignKey的默认值,django,python-2.7,django-rest-framework,Django,Python 2.7,Django Rest Framework,如何在Django中获取null ForeignKey的默认值。例如: class Owner(models.Model) name = models.CharField(max_length=200, unique=True) class Entity(models.Model): name = models.CharField(max_length=200, unique=True) owner = models.ForeignKey(Owner) 我正在使用DR
class Owner(models.Model)
name = models.CharField(max_length=200, unique=True)
class Entity(models.Model):
name = models.CharField(max_length=200, unique=True)
owner = models.ForeignKey(Owner)
我正在使用DRF,所以我尝试了以下序列化程序:
class EntitySerializer(serializers.ModelSerializer):
owner = serializers.SerializerMethodField(read_only=True)
def get_owner(self, obj):
if obj.owner:
return obj.owner_id
return -1
class Meta:
model = Entity
fields = ('id', 'name', 'owner')
如果我将密钥
owner
更改为owner\u id
或其他内容,则此操作有效。但是我不能这样做,因为它在其他地方有依赖项。您可以为字段设置default
属性。政府的解释
如果设置,则会给出默认值,如果未提供输入值,则该值将用于字段。如果未设置,则默认行为是根本不填充属性
在部分更新操作期间不应用默认值。在部分更新情况下,只有传入数据中提供的字段才会返回验证值
您可以为字段设置
default
属性。政府的解释
如果设置,则会给出默认值,如果未提供输入值,则该值将用于字段。如果未设置,则默认行为是根本不填充属性
在部分更新操作期间不应用默认值。在部分更新情况下,只有传入数据中提供的字段才会返回验证值
我不想在数据库中设置它,相反,我只需要一个默认值,以防在检索资源时数据库中的值为NULL。我的意思是为序列化程序字段设置
default
属性。模型中没有。希望您检查了附加的文档链接。是的,默认值在获取数据时不起作用。您应该先尝试一下。我不想在数据库中设置它,我只需要一个默认值,以防在检索资源时数据库中的值为空。我的意思是为序列化程序字段设置default
属性。模型中没有。希望您检查了附加的文档链接。是的,默认值在获取数据时不起作用。你应该先试试。