回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>在view.py中,我尝试拆分一个长字符串属性值。在普通查询中:</p>
<pre><code>someposts = Posts.object.all()[3:5]
</code></pre>
<p>应返回:</p>
<pre><code><QuerySet [object<first post>, object<second post>]>
</code></pre>
<p>然后我按如下方式查询帖子,因为我需要拆分一个属性值(在这个更改之后,我得到了错误):</p>
<pre><code>someposts = Posts.object.all().values('id', 'title', 'tags')[3:5]
</code></pre>
<p>因此,它返回类似于:</p>
<pre><code><QuerySet [{'id': 2, 'title': 'first post', 'tags': ' X1, X2, X3,.., X10'}, {'id': 4, 'title': 'second post', 'tags': ' S1, S2, S3,.., S8'}]
</code></pre>
<p>但是我希望收到<code>tags</code>作为一个stings列表,所以我做了:</p>
<pre><code>splited_tags = [v['tags'].split(',') for v in someposts]
for n, i in enumerate(someposts):
someposts[n]['tags'] = splited_tags[n]
</code></pre>
<p>结果呢,</p>
<pre><code><QuerySet [{'id': 2, 'title': 'first post', 'tags': [' X1', 'X2', 'X3',.., X10']}, {'id': 4, 'title': 'second post', 'tags': [' S1', 'S2', 'S3,.., 'S8']}]
</code></pre>
<p>由于我正在将<code>someposts</code>传递给我的模板:</p>
<pre><code>context = {
'someposts':someposts,
}
return render(request, 'app/home.html', context)
</code></pre>
<p>在home.html中:</p>
<pre><code>{%for post in someposts %}
<a class="avator" href="{% url 'user-post' post.author.username %}"></a>
{ % endfor %}
</code></pre>
<p>我收到这个错误:</p>
<blockquote>
<p>Reverse for 'user-post' with arguments '('',)' not found</p>
</blockquote>
<p>我认为问题在于<code>post.author.username</code>,因为post是一个字符串,它没有<code>.author</code>属性,因此如果无效,它将被计算为字符串,除非我另外指定,否则为空字符串“”</p>
<p>你知道如何解决这个错误吗?或者如何在Queryset中拆分字符串</p>