リストを値として返したいカスタムウィジェットを書いています。返される値を設定するために見つけたものから、カスタム value_from_datadict 関数を作成します。私はこれをやった
def value_from_datadict(self, data, files, name):
value = data.get(name, None)
if value:
# split the sting up so that we have a list of nodes
tag_list = value.strip(',').split(',')
retVal = []
# loop through nodes
for node in tag_list:
# node string should be in the form: node_id-uuid
strVal = str(node).split("-")
uuid = strVal[-1]
node_id = strVal[0]
# create a tuple of node_id and uuid for node
retVal.append({'id': node_id, 'uuid': uuid})
if retVal:
# if retVal is not empty. i.e. we have a list of nodes
# return this. if it is empty then just return whatever is in data
return retVal
return value
これがリストを返すことを期待していますが、値を出力すると、リストではなく文字列として返されます。文字列自体には正しいテキストが含まれていますが、私が言ったように、それはリストではなく文字列です。返されるものの例は次のとおりです。
[{'id': '1625', 'uuid': None}]
しかし、str[0] を実行すると、[ {'id': '1625', 'uuid': None} の代わりに [ が出力されます。
リストが文字列に変換されないようにするにはどうすればよいですか?
ありがとう