编辑:问题解决了!感谢用户对您的输入感到不满.这不是解决方案,而是让我沿着正确的道路走下去:我的LEFT JOIN显示了所有空帖!我还包括if-defined check,作为一个很好的备份检查.
目标:在消息发布仪表板上,如果登录用户拥有该帖子,则仅显示delete-post按钮.
什么有效:如果用户在数据库中创建了帖子,按钮将正确显示和运行.
失败的原因:如果用户在数据库中没有帖子,则仪表板会显示一个"模板"帖子,该帖子没有值且不在数据库中.在所有用户的仪表板上,可以看到与非发布用户关联的此"模板"帖子.一旦用户在数据库中创建帖子,该"模板"将消失并且删除按钮正确显示.如果我删除了用户的上一个(或仅限)帖子,则会重新显示此"模板"帖子.
我的想法:我的'if'陈述出了什么问题?因为它为每个没有任何真实帖子的用户显示此"模板"帖子,无论我登录的是谁.
这是我的代码dashboard.html,缩写.
{% for message in messages: %}
//'mu_id' is messages.user_id as defined in server.py
//'user[0]['id'] is logged-in user id
//using 'session['id'] instead produces same (unwanted) results
{% if message['mu_id'] == user[0]['id']: %}
// show delete button (this part worked, don't worry)
{% endif %}
//this displays each message with poster name
{{message['first_name']}}<br>
{{message['message']}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我的server.py,查询缩写 - 以防万一它是相关的.
//this query uses session['id'] to …Run Code Online (Sandbox Code Playgroud)