我有一个用户模型,其中有很多字段:
class User(models.Model):
openstackcloud_id = models.CharField(max_length=32, null=True) #
username = models.CharField(max_length=16)
password = models.CharField(max_length=40) # sha1加密
real_name = models.CharField(max_length=12, null=True,blank=True)
phone = models.CharField( max_length=11) # 手机号码
email = models.EmailField(blank=True, null=True )
qq = models.CharField(max_length=10, null=True, blank=True)
address = models.CharField(max_length=64, blank=True, null=True) # 地址
id_card = models.CharField(blank=True, null=True, max_length=18, validators=[RegexValidator(regex='^.{18}$', message='身份证长度必须为18', code='nomatch')])
id_card_img_front = models.CharField(max_length=256, blank=True, null=True)
id_card_img_back = models.CharField(max_length=256, blank=True, null=True)
nickname = models.CharField(max_length=16, blank=True, null=True)
profile = models.CharField(max_length=256, blank=True, null=True, default='我爱旗云') # 个人简介
usertype = models.ForeignKey(to='UserType', default=1, blank=True) # 默认是:1.普通用户
user_c_type = models.CharField(max_length=4, null=True) # 用户类型(个人 or 企业)
fixed_phone = models.CharField(max_length=16, null=True) # 固定电话
fax = models.CharField(max_length=16, null=True) # 传真
main_bussiness = models.CharField(max_length=16, null=True) # 主营业务
main_industry = models.CharField(max_length=16, null=True) # 所属行业
company_name = models.CharField(max_length=32, null=True) # 公司名称
company_address = models.CharField(max_length=32, null=True) # 公司地址
province = models.CharField(max_length=32, null=True, default="--省--") # 省市县
town = models.CharField(max_length=32, null=True, default="--市--") # 省市县
country_level = models.CharField(max_length=32, null=True, default="--县--") # 省市县
ctime = models.DateTimeField(auto_now_add=True)
uptime = models.DateTimeField(auto_now=True) # 更新时间
status = models.CharField(max_length=1, null=True, default=1) # 1.存活 2.禁用 3.注销
你看,用户模型中有很多字段。
但我正在使用休息框架,例如:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username', 'password', .....)
我应该在 UserSerializer 字段中写入我需要的所有用户信息,显然这是一件很麻烦的事情。
那么,有没有办法填补我不需要的字段?如果可以的话,对我们来说就方便了。
最佳答案
是的,你可以。使用排除
。使用 '__all__'
包含所有字段,并使用 exclude
删除不需要的字段。
例如,如果您想删除“ctime”和“uptime”但需要包含所有其他字段,则
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
exclude = ('ctime', 'uptime')
关于python - 我们可以在序列化器字段中填写我不需要的字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46887904/