python - 将对象属性值添加到数组 Django

标签 python arrays django

我是 Django 的新手,这是我使用它的第一个项目。我遇到了一个我不明白的问题,并且(也许我没有使用正确的搜索词)我在搜索解决方案时没有找到任何相关结果。

我试图在我的模型的“主题”字段中获取一组不同的条目。当我得到以下结果时,我在 shell 中玩耍,试图弄清楚这一点。

这是我在 shell 中输入的内容:

>>> 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。

最佳答案

尝试使用 append 方法代替 a += q.topic

a.append(q.topic)

或者:

a += [q.topic]

原因是字符串对象是可迭代的,python 将迭代以将项目附加到您的列表中。所以遍历 'Robotics'给你['R', 'o', 'b', 'o', 't', 'i', 'c', 's'] .

因此,如果您指定单个列表值 [q.topic] python 将附加 q.topic 的值对于 for 中的每次迭代循环。

关于python - 将对象属性值添加到数组 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40441898/

相关文章:

python - numba:数组按行相乘

django - 使用 apache2 通过 https 运行 django admin

python - Django 1.8 操作错误 : no such column:

python - Docker:没有这样的选项:--use-wheel

python - 有没有办法为每个生成的输出调用一次 API 而不是两次?

python - 使用 Django 启用管理员时出现 404

python - python 中的索引错误

c++ - 复制二维数组 C++

javascript - 将对象转换为字符串

python - 如何在django中存储复杂的csv数据?