Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 13, 2012 16:20:17

Slast
От:
Зарегистрирован: 2012-01-13
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

RadioSelect и Image

Буду благодарен за подсказку как возможно реализовать такое:



Офлайн

#2 Янв. 14, 2012 18:06:34

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

RadioSelect и Image

Что конкретно вам не понятно?



Офлайн

#3 Янв. 16, 2012 04:53:50

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

RadioSelect и Image

Slast
Буду благодарен за подсказку как возможно реализовать такое:

http://www.7image.ru/pics/0112/221710821.jpg
<html>
<head>
<head>
<body>

<div>

<div style="float: left; margin:10px" align=center >
<input type="radio" ><br>
<img src='/home/smirnov/Screenshot-6.png' width=50px height=50px style="margin-top:20px" />
</div>

<div style="float: left; margin:10px" align=center>
<input type="radio" ><br>
<img src='/home/smirnov/python.jpg' width=50px height=50px style="margin-top:20px" />
</div>

</div>


</body>
</html>



Офлайн

#4 Янв. 16, 2012 04:56:55

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

RadioSelect и Image



Офлайн

#5 Янв. 16, 2012 04:57:55

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

RadioSelect и Image

Можно начинать благодарить уже.



Офлайн

#6 Янв. 16, 2012 14:11:20

Piton23
От:
Зарегистрирован: 2011-10-17
Сообщения: 139
Репутация: +  5  -
Профиль   Отправить e-mail  

RadioSelect и Image



Не у FishHook определенно лучше :)

to Slast

А если серьезно что вам надо то? на сайте? так вы сделали это, в чем задача то? конкретизируйте

Отредактировано (Янв. 16, 2012 14:13:01)

Офлайн

#7 Янв. 16, 2012 17:04:07

Slast
От:
Зарегистрирован: 2012-01-13
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

RadioSelect и Image

Пример в колорпейнте нарисовал.

Александр Кошелев
Что конкретно вам не понятно?
Есть страничка, в ней одно поле выглядит так:
class AddMsgForm(forms.Form):
TITLE_CHOICES = (
(1, u'Выбор раз'),
(0, u'Выбор два'))
mode= forms.CharField(label=u'тип',max_length=3,
widget=forms.RadioSelect(choices=TITLE_CHOICES))

Хотелось бы для наглядности сделать ниже (или между) графический пример того что выбирают.



Офлайн

#8 Янв. 17, 2012 05:49:46

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

RadioSelect и Image

Slast
Пример в колорпейнте нарисовал.

Александр Кошелев
Что конкретно вам не понятно?
Есть страничка, в ней одно поле выглядит так:
class AddMsgForm(forms.Form):
TITLE_CHOICES = (
(1, u'Выбор раз'),
(0, u'Выбор два'))
mode= forms.CharField(label=u'тип',max_length=3,
widget=forms.RadioSelect(choices=TITLE_CHOICES))

Хотелось бы для наглядности сделать ниже (или между) графический пример того что выбирают.
Как вариант
class RadioSelect(Select):
renderer = RadioFieldRenderer

def __init__(self, *args, **kwargs):
# Override the default renderer if we were passed one.
renderer = kwargs.pop('renderer', None)
if renderer:
self.renderer = renderer
super(RadioSelect, self).__init__(*args, **kwargs)

def get_renderer(self, name, value, attrs=None, choices=()):
"""Returns an instance of the renderer."""
if value is None: value = ''
str_value = force_unicode(value) # Normalize to string.
final_attrs = self.build_attrs(attrs)
choices = list(chain(self.choices, choices))
return self.renderer(name, str_value, final_attrs, choices)

def render(self, name, value, attrs=None, choices=()):
return self.get_renderer(name, value, attrs, choices).render()

def id_for_label(self, id_):
# RadioSelect is represented by multiple <input type="radio"> fields,
# each of which has a distinct ID. The IDs are made distinct by a "_X"
# suffix, where X is the zero-based index of the radio field. Thus,
# the label for a RadioSelect should reference the first one ('_0').
if id_:
id_ += '_0'
return id_
id_for_label = classmethod(id_for_label)
class RadioFieldRenderer(StrAndUnicode):
"""
An object used by RadioSelect to enable customization of radio widgets.
"""

def __init__(self, name, value, attrs, choices):
self.name, self.value, self.attrs = name, value, attrs
self.choices = choices

def __iter__(self):
for i, choice in enumerate(self.choices):
yield RadioInput(self.name, self.value, self.attrs.copy(), choice, i)

def __getitem__(self, idx):
choice = self.choices[idx] # Let the IndexError propogate
return RadioInput(self.name, self.value, self.attrs.copy(), choice, idx)

def __unicode__(self):
return self.render()

def render(self):
"""Outputs a <ul> for this set of radio fields."""
return mark_safe(u'<ul>\n%s\n</ul>' % u'\n'.join([u'<li>%s</li>'
% force_unicode(w) for w in self]))
Переписать эти два класса в соответствии со своими нуждами и юзать свой виджет



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version