Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django REST框架:如何将FK设置为可选?_Python_Django_Django Rest Framework - Fatal编程技术网

Python Django REST框架:如何将FK设置为可选?

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

我试图设置外键字段是可选的

我已经在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 = 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”字段,但我希望它作为可选字段(不是必需的)。