2017-10-23 20 views
1

私は、ユーザーモデルを持っており、それはそれで多くのフィールドがあります:あなたが見シリアライザのフィールドで必要としないフィールドに入力できますか?

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.注销 

を、Userモデルには多くのフィールドがあります。

しかし、私は次のように、残りのフレームワークを使用しています:私は、明らかにそのうるさい事を私はUserSerializerフィールドに必要なユーザー情報のすべてを書くべき

class UserSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = User 
     fields = ('username', 'password', .....) 

だから、私が必要としないフィールドを埋める方法はありますか?できれば、それは私たちのために便利です。

答えて

3

はいできます。 excludeを使用してください。 '__all__'を使用してすべてのフィールドを含め、excludeを使用して不要なフィールドを削除します。その後、例えば

、あなたは「ctimeの」と「アップタイム」を除去するが、他のすべてのフィールドを含める必要がしたい場合は、

class UserSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = User 
     fields = '__all__' 
     exclude = ('ctime', 'uptime') 
関連する問題