Python Django REST框架:如何将FK设置为可选?
我试图设置外键字段是可选的 我已经在models.py文件的“group”字段中添加了“null=True,blank=True”,但这也是必需的 以下是我的models.py代码:Python Django REST框架:如何将FK设置为可选?,python,django,django-rest-framework,Python,Django,Django Rest Framework,我试图设置外键字段是可选的 我已经在models.py文件的“group”字段中添加了“null=True,blank=True”,但这也是必需的 以下是我的models.py代码: class Record(Timestampable): uuid = CharField(max_length=256, primary_key=True, editable=False) code = CharField(max_length=32, blank=True) name = CharF
class Record(Timestampable):
uuid = CharField(max_length=256, primary_key=True, editable=False)
code = CharField(max_length=32, blank=True)
name = CharField(max_length=256, blank=True)
group = ForeignKey('self', null=True, blank=True, related_name='members')
class RecordSerializer(ModelSerializer):
class Meta:
model = Record
fields = ('uuid', 'code', 'name', 'group')
以下是我的serializers.py代码:
class Record(Timestampable):
uuid = CharField(max_length=256, primary_key=True, editable=False)
code = CharField(max_length=32, blank=True)
name = CharField(max_length=256, blank=True)
group = ForeignKey('self', null=True, blank=True, related_name='members')
class RecordSerializer(ModelSerializer):
class Meta:
model = Record
fields = ('uuid', 'code', 'name', 'group')
默认情况下,即使DRF中的请求中的值为null,您仍然需要提供该字段 但是,您可以将字段指定为非必需字段:
class RecordSerializer(ModelSerializer):
group = serializers.CharField(required=False)
class Meta:
model = Record
fields = ('uuid', 'code', 'name', 'group')
此处提供了相关文档:默认情况下,即使DRF请求中的值为空,您仍然需要提供该字段 但是,您可以将字段指定为非必需字段:
class RecordSerializer(ModelSerializer):
group = serializers.CharField(required=False)
class Meta:
model = Record
fields = ('uuid', 'code', 'name', 'group')
此处提供了相关文档:尝试将Meta类中的exclude属性设置为exclude=()并删除字段。感谢您的回复,但这对我不起作用。元类中的exclude属性删除了“group”字段,但我希望它作为可选字段(不是必需的)。请尝试将元类中的exclude属性设置为exclude=()并删除字段。感谢您的回复,但这对我不起作用。Meta类中的exclude属性删除了“group”字段,但我希望它作为可选字段(不是必需的)。