You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django开发社交分享按钮报QuerySet无info属性错误如何解决

错误原因
  • movie.objects.filter(urltitle=title)返回的是Django查询集(QuerySet)对象,属于多个模型实例的集合,不存在info属性,只有单个movie模型实例才有你定义的info字段,所以调用ttt.info会抛出属性不存在的错误。
修复步骤
  1. 先修正后端的模型查询逻辑:
    如果你确认urltitle是唯一字段(模型中配置了unique=True),直接用get()获取单个实例即可,建议搭配get_object_or_404处理无匹配项的404场景:
from urllib.parse import urlencode, quote_plus
from django.shortcuts import get_object_or_404

def ttt_read(request, title):
    ttt = get_object_or_404(movie, urltitle=title)
    share_string = quote_plus(ttt.info)
    if request.method == 'POST':
        form = Commentform(request.POST)
        if form.is_valid():
            form.save()
            messages.success(request, 'Thank You For Your Comment')
    else:
        form = Commentform()
    return render(request, 'ttt_read.html',{'ttt':ttt,'form':form,'share_string':share_string})

如果urltitle允许重复,只需取第一个匹配的实例,修改查询代码即可:

ttt = movie.objects.filter(urltitle=title).first()
if ttt:
    share_string = quote_plus(ttt.info)
else:
    # 无匹配实例时设置默认分享文本
    share_string = quote_plus("默认分享内容")
  1. 对应修改前端分享链接,直接填入已经编码完成的share_string即可:
<a  class="i-links" target="_blank" href="https://twitter.com/home?status={{ share_string }}%20{{ request.build_absolute_uri }}">

内容的提问来源于stack exchange,提问作者Shreyash mishra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:39:00