mirror of
https://github.com/django/django.git
synced 2025-08-04 19:08:28 +00:00
Fixed #34140 -- Reformatted code blocks in docs with blacken-docs.
This commit is contained in:
parent
6015bab80e
commit
14459f80ee
193 changed files with 5797 additions and 4481 deletions
|
@ -38,6 +38,7 @@ use the :attr:`~Field.widget` argument on the field definition. For example::
|
|||
|
||||
from django import forms
|
||||
|
||||
|
||||
class CommentForm(forms.Form):
|
||||
name = forms.CharField()
|
||||
url = forms.URLField()
|
||||
|
@ -56,15 +57,18 @@ widget on the field. In the following example, the
|
|||
|
||||
from django import forms
|
||||
|
||||
BIRTH_YEAR_CHOICES = ['1980', '1981', '1982']
|
||||
BIRTH_YEAR_CHOICES = ["1980", "1981", "1982"]
|
||||
FAVORITE_COLORS_CHOICES = [
|
||||
('blue', 'Blue'),
|
||||
('green', 'Green'),
|
||||
('black', 'Black'),
|
||||
("blue", "Blue"),
|
||||
("green", "Green"),
|
||||
("black", "Black"),
|
||||
]
|
||||
|
||||
|
||||
class SimpleForm(forms.Form):
|
||||
birth_year = forms.DateField(widget=forms.SelectDateWidget(years=BIRTH_YEAR_CHOICES))
|
||||
birth_year = forms.DateField(
|
||||
widget=forms.SelectDateWidget(years=BIRTH_YEAR_CHOICES)
|
||||
)
|
||||
favorite_colors = forms.MultipleChoiceField(
|
||||
required=False,
|
||||
widget=forms.CheckboxSelectMultiple,
|
||||
|
@ -91,14 +95,14 @@ example:
|
|||
.. code-block:: pycon
|
||||
|
||||
>>> from django import forms
|
||||
>>> CHOICES = [('1', 'First'), ('2', 'Second')]
|
||||
>>> CHOICES = [("1", "First"), ("2", "Second")]
|
||||
>>> choice_field = forms.ChoiceField(widget=forms.RadioSelect, choices=CHOICES)
|
||||
>>> choice_field.choices
|
||||
[('1', 'First'), ('2', 'Second')]
|
||||
>>> choice_field.widget.choices
|
||||
[('1', 'First'), ('2', 'Second')]
|
||||
>>> choice_field.widget.choices = []
|
||||
>>> choice_field.choices = [('1', 'First and only')]
|
||||
>>> choice_field.choices = [("1", "First and only")]
|
||||
>>> choice_field.widget.choices
|
||||
[('1', 'First and only')]
|
||||
|
||||
|
@ -132,6 +136,7 @@ For example, take the following form::
|
|||
|
||||
from django import forms
|
||||
|
||||
|
||||
class CommentForm(forms.Form):
|
||||
name = forms.CharField()
|
||||
url = forms.URLField()
|
||||
|
@ -156,9 +161,9 @@ the 'type' attribute to take advantage of the new HTML5 input types. To do
|
|||
this, you use the :attr:`Widget.attrs` argument when creating the widget::
|
||||
|
||||
class CommentForm(forms.Form):
|
||||
name = forms.CharField(widget=forms.TextInput(attrs={'class': 'special'}))
|
||||
name = forms.CharField(widget=forms.TextInput(attrs={"class": "special"}))
|
||||
url = forms.URLField()
|
||||
comment = forms.CharField(widget=forms.TextInput(attrs={'size': '40'}))
|
||||
comment = forms.CharField(widget=forms.TextInput(attrs={"size": "40"}))
|
||||
|
||||
You can also modify a widget in the form definition::
|
||||
|
||||
|
@ -167,8 +172,8 @@ You can also modify a widget in the form definition::
|
|||
url = forms.URLField()
|
||||
comment = forms.CharField()
|
||||
|
||||
name.widget.attrs.update({'class': 'special'})
|
||||
comment.widget.attrs.update(size='40')
|
||||
name.widget.attrs.update({"class": "special"})
|
||||
comment.widget.attrs.update(size="40")
|
||||
|
||||
Or if the field isn't declared directly on the form (such as model form fields),
|
||||
you can use the :attr:`Form.fields` attribute::
|
||||
|
@ -176,8 +181,8 @@ you can use the :attr:`Form.fields` attribute::
|
|||
class CommentForm(forms.ModelForm):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields['name'].widget.attrs.update({'class': 'special'})
|
||||
self.fields['comment'].widget.attrs.update(size='40')
|
||||
self.fields["name"].widget.attrs.update({"class": "special"})
|
||||
self.fields["comment"].widget.attrs.update(size="40")
|
||||
|
||||
Django will then include the extra attributes in the rendered output:
|
||||
|
||||
|
@ -231,8 +236,8 @@ foundation for custom widgets.
|
|||
.. code-block:: pycon
|
||||
|
||||
>>> from django import forms
|
||||
>>> name = forms.TextInput(attrs={'size': 10, 'title': 'Your name'})
|
||||
>>> name.render('name', 'A name')
|
||||
>>> name = forms.TextInput(attrs={"size": 10, "title": "Your name"})
|
||||
>>> name.render("name", "A name")
|
||||
'<input title="Your name" type="text" name="name" value="A name" size="10">'
|
||||
|
||||
If you assign a value of ``True`` or ``False`` to an attribute,
|
||||
|
@ -240,12 +245,12 @@ foundation for custom widgets.
|
|||
|
||||
.. code-block:: pycon
|
||||
|
||||
>>> name = forms.TextInput(attrs={'required': True})
|
||||
>>> name.render('name', 'A name')
|
||||
>>> name = forms.TextInput(attrs={"required": True})
|
||||
>>> name.render("name", "A name")
|
||||
'<input name="name" type="text" value="A name" required>'
|
||||
>>>
|
||||
>>> name = forms.TextInput(attrs={'required': False})
|
||||
>>> name.render('name', 'A name')
|
||||
>>> name = forms.TextInput(attrs={"required": False})
|
||||
>>> name.render("name", "A name")
|
||||
'<input name="name" type="text" value="A name">'
|
||||
|
||||
.. attribute:: Widget.supports_microseconds
|
||||
|
@ -373,7 +378,7 @@ foundation for custom widgets.
|
|||
|
||||
>>> from django.forms import MultiWidget, TextInput
|
||||
>>> widget = MultiWidget(widgets=[TextInput, TextInput])
|
||||
>>> widget.render('name', ['john', 'paul'])
|
||||
>>> widget.render("name", ["john", "paul"])
|
||||
'<input type="text" name="name_0" value="john"><input type="text" name="name_1" value="paul">'
|
||||
|
||||
You may provide a dictionary in order to specify custom suffixes for
|
||||
|
@ -385,8 +390,8 @@ foundation for custom widgets.
|
|||
|
||||
.. code-block:: pycon
|
||||
|
||||
>>> widget = MultiWidget(widgets={'': TextInput, 'last': TextInput})
|
||||
>>> widget.render('name', ['john', 'paul'])
|
||||
>>> widget = MultiWidget(widgets={"": TextInput, "last": TextInput})
|
||||
>>> widget.render("name", ["john", "paul"])
|
||||
'<input type="text" name="name" value="john"><input type="text" name="name_last" value="paul">'
|
||||
|
||||
And one required method:
|
||||
|
@ -409,8 +414,8 @@ foundation for custom widgets.
|
|||
|
||||
from django.forms import MultiWidget
|
||||
|
||||
class SplitDateTimeWidget(MultiWidget):
|
||||
|
||||
class SplitDateTimeWidget(MultiWidget):
|
||||
# ...
|
||||
|
||||
def decompress(self, value):
|
||||
|
@ -450,6 +455,7 @@ foundation for custom widgets.
|
|||
from datetime import date
|
||||
from django import forms
|
||||
|
||||
|
||||
class DateSelectorWidget(forms.MultiWidget):
|
||||
def __init__(self, attrs=None):
|
||||
days = [(day, day) for day in range(1, 32)]
|
||||
|
@ -466,14 +472,14 @@ foundation for custom widgets.
|
|||
if isinstance(value, date):
|
||||
return [value.day, value.month, value.year]
|
||||
elif isinstance(value, str):
|
||||
year, month, day = value.split('-')
|
||||
year, month, day = value.split("-")
|
||||
return [day, month, year]
|
||||
return [None, None, None]
|
||||
|
||||
def value_from_datadict(self, data, files, name):
|
||||
day, month, year = super().value_from_datadict(data, files, name)
|
||||
# DateField expects a single string that it can parse into a date.
|
||||
return '{}-{}-{}'.format(year, month, day)
|
||||
return "{}-{}-{}".format(year, month, day)
|
||||
|
||||
The constructor creates several :class:`Select` widgets in a list. The
|
||||
``super()`` method uses this list to set up the widget.
|
||||
|
@ -952,9 +958,18 @@ Composite widgets
|
|||
the values are the displayed months::
|
||||
|
||||
MONTHS = {
|
||||
1:_('jan'), 2:_('feb'), 3:_('mar'), 4:_('apr'),
|
||||
5:_('may'), 6:_('jun'), 7:_('jul'), 8:_('aug'),
|
||||
9:_('sep'), 10:_('oct'), 11:_('nov'), 12:_('dec')
|
||||
1: _("jan"),
|
||||
2: _("feb"),
|
||||
3: _("mar"),
|
||||
4: _("apr"),
|
||||
5: _("may"),
|
||||
6: _("jun"),
|
||||
7: _("jul"),
|
||||
8: _("aug"),
|
||||
9: _("sep"),
|
||||
10: _("oct"),
|
||||
11: _("nov"),
|
||||
12: _("dec"),
|
||||
}
|
||||
|
||||
.. attribute:: SelectDateWidget.empty_label
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue