mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-26 03:23:59 +03:00
Merge pull request #1564 from alumni/master
Fixes #1535 (HTML widget missing `id` attribute)
This commit is contained in:
commit
d69d975015
|
@ -154,7 +154,12 @@ class Field(object):
|
||||||
def widget_html(self):
|
def widget_html(self):
|
||||||
if not self.widget:
|
if not self.widget:
|
||||||
return ''
|
return ''
|
||||||
return self.widget.render(self._name, self._value)
|
|
||||||
|
attrs = {}
|
||||||
|
if 'id' not in self.widget.attrs:
|
||||||
|
attrs['id'] = self._name
|
||||||
|
|
||||||
|
return self.widget.render(self._name, self._value, attrs=attrs)
|
||||||
|
|
||||||
def label_tag(self):
|
def label_tag(self):
|
||||||
return '<label for="%s">%s:</label>' % (self._name, self.label)
|
return '<label for="%s">%s:</label>' % (self._name, self.label)
|
||||||
|
|
|
@ -4,6 +4,7 @@ General serializer field tests.
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
|
import re
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from django.core import validators
|
from django.core import validators
|
||||||
|
@ -103,6 +104,16 @@ class BasicFieldTests(TestCase):
|
||||||
keys = list(field.to_native(ret).keys())
|
keys = list(field.to_native(ret).keys())
|
||||||
self.assertEqual(keys, ['c', 'b', 'a', 'z'])
|
self.assertEqual(keys, ['c', 'b', 'a', 'z'])
|
||||||
|
|
||||||
|
def test_widget_html_attributes(self):
|
||||||
|
"""
|
||||||
|
Make sure widget_html() renders the correct attributes
|
||||||
|
"""
|
||||||
|
r = re.compile('(\S+)=["\']?((?:.(?!["\']?\s+(?:\S+)=|[>"\']))+.)["\']?')
|
||||||
|
form = TimeFieldModelSerializer().data
|
||||||
|
attributes = r.findall(form.fields['clock'].widget_html())
|
||||||
|
self.assertIn(('name', 'clock'), attributes)
|
||||||
|
self.assertIn(('id', 'clock'), attributes)
|
||||||
|
|
||||||
|
|
||||||
class DateFieldTest(TestCase):
|
class DateFieldTest(TestCase):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user