class Serializer(serializers.ExcelSerializer): field_name_1 = serializers.CharField(max_length=10, verbose_name='Field name 1') field_name_2 = serializers.CharField(max_length=10, verbose_name='Field name 2') class Meta: start_index = 1 fields = ('field_name_1', 'field_name_2')
class Serializer(serializers.ExcelSerializer): field_name_1 = serializers.CharField(max_length=10, verbose_name='Field name 1') field_name_2 = serializers.CharField(max_length=10, verbose_name='Field name 2') class Meta: start_index = 1 fields = ('field_name_1', 'field_name_2') def row_extra_validation(self, index, cleaned_row): assert cleaned_row['field_name_1'] == 'value 1' assert cleaned_row['field_name_2'] == 'value 2'
class Serializer(serializers.ExcelSerializer): field_name_1 = serializers.CharField(max_length=10, verbose_name='Field name 1') field_name_2 = serializers.CharField(max_length=10, verbose_name='Field name 2') class Meta: start_index = 1 fields = ('field_name_1', 'field_name_2') def extra_clean_field_name_2(self, value): if value == 'value 2': raise ValidationError('This value is not excepted.')
class OrderExcelSerializer(serializers.ExcelSerializer): QR_SCANNED_CHOICES = (u'有', u'無') ACTIVE_CHOICES = ('Yes', 'No') shop_name = serializers.CharField(max_length=10, verbose_name='Shop Name') order_number = serializers.CharField(max_length=20, verbose_name='Order Number') quantity = serializers.IntegerField(verbose_name='Quantity') sale_datetime = serializers.DateField(verbose_name='Sale Datetime', date_format='%Y-%m-%d', date_format_verbose='YYYY-MM-DD') inspection_expired_date = serializers.DateField( verbose_name='Inspection Expired Date', date_format='%Y%m%d', date_format_verbose='YYYYMMDD') registered_date = serializers.DateField(verbose_name='Expired Date', date_format='%Y%m', date_format_verbose='YYYYMM', blank=True) weight = serializers.IntegerField(verbose_name='Weight', blank=True, default=0) qr_scanned = serializers.CharField(max_length=2, verbose_name='QR Scanned', choices=QR_SCANNED_CHOICES) default_checked = serializers.BooleanField(verbose_name='Default Checked') address = serializers.CharField(max_length=100, blank=True, verbose_name='Address') active = serializers.CharField(max_length=5, blank=True, verbose_name='Active', choices=ACTIVE_CHOICES, case_sensitive=False) def extra_clean_active(self, cleaned_value): return True if cleaned_value == 'Yes' else False class Meta: start_index = 1 fields = ('shop_name', 'order_number', 'sale_datetime', 'quantity', 'inspection_expired_date', 'registered_date', 'weight', 'qr_scanned', 'default_checked', 'address', 'active')