【发布时间】:2011-08-29 04:17:05
【问题描述】:
Django 的文档在解释如何使用 MultiValueField 和 MultiWidget 方面做得不够透彻。我试过剖析one implementation 并没有得到好的结果。有人介意给我一个正确方向的快速指示吗?
我的例子:
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)
有人知道这里发生了什么吗?我的猜测是发生了一些意外的异常抑制,但我无法找到源。
谢谢!
【问题讨论】:
-
MultiWidget 方法:stackoverflow.com/questions/3511855/…
标签: python django django-admin django-forms