修改modelForm的字段choices显示

model

class TransactionRecord(ActiveBaseModel):
    status_class_mapping = {
        1: 'info',
        2: 'danger',
        3: 'success',
        4: 'primary',
        5: 'warning',
    }
    choice_status = (
        (1, '充值'),
        (2, '扣款'),
        (3, '创建订单'),
        (4, '删除订单'),
        (5, '撤单'),
    )
    status = models.SmallIntegerField(verbose_name='状态', choices=choice_status)
    trader = models.ForeignKey(verbose_name='交易人', to='User', on_delete=models.CASCADE)
    amount = models.DecimalField(verbose_name='金额', max_digits=10, decimal_places=2, default=0)
    operator_id = models.CharField(verbose_name='操作人', max_length=64, null=True, blank=True, db_index=True)
    order_id = models.CharField(verbose_name='订单号', max_length=64, null=True, blank=True, db_index=True)
    create_time = models.DateTimeField(verbose_name='下单时间', auto_now_add=True)
    remarks = models.TextField(verbose_name='备注', null=True, blank=True)

ModelForm

class TransactionForm(BootstrapForm, forms.ModelForm):
    class Meta:
        model = TransactionRecord
        fields = ['status', 'amount', 'trader', 'remarks']

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 修改默认选项
        self.fields['status'].choices = [(1, '充值'),
                                         (2, '扣款')]
posted @ 2022-09-16 15:01  Sherwin_szw  阅读(51)  评论(0编辑  收藏  举报