Django - 在 form.py 元类中添加小部件选项?

问题描述 投票:0回答:2

模型.py

from django.db import models

class user(models.Model):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    email = models.EmailField(max_length=100, unique=True)

表格.py

from django import forms
from second_app.models import user

class NewUserForm(forms.ModelForm):

    class Meta:
        model = user
        fields = '__all__'

在不从模型继承的普通

forms.py
中,您可以使用
field = forms.CharField(widget=forms.HiddenInput)
指定如何向用户显示输入字段。当我的
forms.py
继承
models.py
中定义的类时,如何做到这一点?

python django django-models django-forms
2个回答
3
投票

您可以使用此元的

widgets
选项:

from django import forms
from second_app.models import user

class NewUserForm(forms.ModelForm):

    class Meta:
        model = user
        fields = '__all__'
        widgets = {
            'field_name': forms.HiddenInput(),
        }

2
投票

您可以在表单

__init__
方法中修改小部件:

def __init__(self, *args, **kwargs):
    super(NewUserForm, self).__init__(*args, *kwargs)
    self.fields['fieldname'].widget = forms.HiddenInput()

您可以更改该字段的任何内容......例如。必需的、选择的以及您可能希望在显示表单时做出不同决定的许多其他内容。 您还可以从此处的表单中删除字段,或添加您可能只想有条件包含的字段..例如:

del self.fields['fieldname']
if some_condition:
    field['new_fieldname'] = forms.CharField()
© www.soinside.com 2019 - 2024. All rights reserved.