django modelform, как узнать тип ввода чековая книжка? - PullRequest
0 голосов
/ 04 сентября 2018

Моя модель - это динамически генерируемая модель, я хочу знать тип is_true в modelForm. Тип входного тега - тип чековой книжки. Если я знаю type = 'checkbox' поля is_true, добавьте к нему атрибут attr класса отдельно. Интерфейс type = 'checkbox' по умолчанию слишком уродливый

модель

class Employee(AbstractBaseUser):
    """
    用户表
    """
    username = models.CharField(max_length=30, verbose_name='姓名')
    email = models.EmailField(verbose_name='邮箱', unique=True)
    is_true = models.BooleanField(default=False, verbose_name='是否超级用户')

вид

class ModelFormDemo(ModelForm):
    class Meta:
        model = self.model
        if self.list_editable:
            fields = self.list_editable
        else:
            fields = '__all__'

    excluded = self.excluded

    def __init__(self, *args, **kwargs):
        super(ModelFormDemo, self).__init__(*args, **kwargs)

def add_view(self, request):

    form = ModelFormDemo()

    if request.method == "POST":
        res_dict = {'status': 1, 'msg': 'success'}
        form = ModelFormDemo(request.POST)
        if form.is_valid():
            obj = form.save()
        else:
            res_dict['msg'] = form.errors
            res_dict['status'] = 2
        return JsonResponse(res_dict)
    return render(request, "xadmin/add_view.html", locals())

HTML

<form class="layui-form" method="post">
    {% csrf_token %}
    {% for field in form %}
        {% if field.name == 'employee' %}
            <input type="hidden" name="employee" value="{{ user.id }}">
        {% else %}
            <div class="layui-form-item">
                <label class="layui-form-label">{{ field.label }}</label>
                <div class="layui-input-inline">
                    {{ field }}
                </div>
            </div>
        {% endif %}
    {% endfor %}
    <div class="layui-form-item">
        <div class="layui-input-block">
            <input type="button" class="layui-btn" lay-filter="add" lay-submit="" value="add">
            </input>

            <button type="reset" class="layui-btn layui-btn-primary">reset</button>
        </div>
    </div>

</form>

1 Ответ

0 голосов
/ 04 сентября 2018

Вы можете использовать Widget.attrs arg в вашей форме __init__ метод.

https://docs.djangoproject.com/en/dev/ref/forms/widgets/#django.forms.Widget.attrs

...