私はDjangoを初めて使用しています。これは初めてのプロジェクトです。私は理解していない問題にぶつかりました(おそらく私は適切な検索条件を使用していません)解決策を探す際に関連する結果は見つけられません。オブジェクトの属性値を配列に追加するDjango
私のモデルの「トピック」フィールドに別個のエントリの配列を取得しようとしました。私はシェルで遊んでいました。私が期待していなかった次の結果が得られたら、これを理解しようとしました。
これは私がシェルに入力したものです:
>>> from pomodoro.models import Chunk, Result
>>> Chunk.objects.all()
<QuerySet [<Chunk: Onboard State Estimation>, <Chunk: Newton's 2nd Law of Motion>, <Chunk: IF>]>
>>> a = []
>>> for q in Chunk.objects.all(): a += q.topic
...
>>> a
['R', 'o', 'b', 'o', 't', 'i', 'c', 's', 'M', 'e', 'c', 'h', 'a', 'n', 'i', 'c', 's', 'L', 'o', 'g', 'i', 'c']
>>> ose = Chunk.objects.get(pk=1)
>>> ose.topic
'Robotics'
私は個々の文字ではなく、「話題」文字列の配列の配列になってしまった理由を私は理解していません。誰かがなぜこれが起こったのか説明できますか?
私がやろうとしていることをもっとうまくやっていることも知っていますが、初心者ではDjangoを適切に把握していません。その理由は、その文字列オブジェクトが反復可能であり、Pythonはあなたのリストに項目を追加するために反復処理するようです
a += [q.topic]
:
'a + = q.topic'ではなく' a.append(q.topic) 'です。または 'a + = [q.topic]' – slackmart
それは意味があります、ありがとう – Era