重写form的字段 自定义form插件

#一 导入自定义插件
1. forms
--widgets.py
# -*- coding:utf-8 -*-

from django.forms import RadioSelect


class ColorRadioSelect(RadioSelect):
    template_name = 'widgets/color_radio/radio.html'
    option_template_name = 'widgets/color_radio/radio_option.html'
2. templates
--widgets()
  --color_redio
        --redio.html
        --radio_option.html
二 使用
from django import forms
from web import models
from utils.form_placeholder import form_placeholder
from django.core.exceptions import ValidationError
from web.forms.widgets import ColorRadioSelect


class add_project(form_placeholder, forms.ModelForm):
    except_bootstrap_styles = ['color']

    class Meta:
        model = models.Project
        fields = ['name', 'color', 'disc']
        labels = {
            'disc': '项目描述'
        }
        widgets = {
            'disc': forms.Textarea(),
            'color': ColorRadioSelect(attrs={'class': 'color-radio'})
        }

    def __init__(self, request, *args, **kwargs):
        super(add_project, self).__init__(*args, **kwargs)
        self.request = request

 

posted @ 2021-10-17 22:52  mofr  阅读(60)  评论(0)    收藏  举报