私はこのコードを持っています:
import re
import six
from django.core.validators import validate_email
from django.db.models import TextField, SubfieldBase
class EmailsListField(TextField):
__metaclass__ = SubfieldBase
email_separator_re = re.compile(r'\s*,\s*')
def to_python(self, value):
if isinstance(value, six.string_types):
return [x for x in self.email_separator_re.split(value) if x]
else:
return list(value)
def validate(self, value, model_instance):
super(EmailsListField, self).validate(value, model_instance)
for email in value:
validate_email(email)
def get_prep_value(self, value):
if isinstance(value, six.string_types):
return value
else:
return ', '.join(value)
テキスト ボックスから多くの電子メールを受け取り、検証し、保存するように設計されています。データベースにテキスト (例: "jim@mail.com, lauren@mail.com") として保存します。管理テキスト ボックスとリスト ビュー (およびおそらく他の場所) を除いて、すべてが期待どおりに機能します。値は u"['jim@mail.com', 'lauren@mail.com']" として表示されます。もちろん、これは醜いだけでなく無効な形式です。
テキストボックスとリスト ビューの両方で「jim@mail.com, lauren@mail.com」と表示されるようにするにはどうすればよいですか?