La documentación de Django no explica en detalle cómo usar MultiValueField y MultiWidget. Intenté diseccionar el one implementation y no he tenido buenos resultados. ¿Alguien me importaría darme un rápido apunte en la dirección correcta?Django: MultiValueField y MultiWidget
Mi ejemplo:
widgets.py
from django import forms
class TestMultiWidget(forms.MultiWidget):
def __init__(self, attrs=None):
widgets = (
forms.TextInput(attrs=attrs),
forms.TextInput(attrs=attrs),
)
super(TestMultiWidget, self).__init__(widgets, attrs)
def decompress(self, value):
if value:
return value.split(':::')[0:2]
return ['', '']
fields.py
from django import forms
from widgets import TestMultiWidget
class TestMultiField(forms.MultiValueField):
widget = TestMultiWidget
def __init__(self, *args, **kwargs):
fields = (
forms.CharField(),
forms.CharField(),
)
super(TestMultiField, self).__init__(fields, *args, **kwargs)
def compress(self, data_list):
if data_list:
return ':::'.join(data_list)
return ''
models.py
from django.db import models
from util.fields import TestMultiField
class Test(models.Model):
a = models.CharField(max_length=128)
b = TestMultiField()
c = models.CharField(max_length=128)
admin.py
from django.contrib import admin
from models import Test
admin.site.register(Test)
¿Alguien tiene una idea de lo que está pasando aquí? Creo que hay una supresión involuntaria de excepciones, pero no he podido localizar la fuente.
Gracias!
MultiWidget howto: http://stackoverflow.com/questions/3511855/how-do- i-use-djangos-multiwidget/4663801 # 4663801 – Udi