如果我使用SQL语句填充dropdown中的数据,就会收到这个错误消息。在
错误信息
'RawQuerySet' object has no attribute 'all'
在模型.py在
^{pr2}$在视图.py在
def autoresponder_create(request, template_name='autoresponder/autoresponder_form.html'):
if not request.user.is_authenticated():
return redirect('home')
form = AutoresponderForm(request.POST or None)
form.fields["set_auto_reply_for_fan_page"].query = FacebookFanPage.objects.raw('SELECT * '
'FROM fbautoreply_facebookfanpage '
'JOIN fbautoreply_facebookaccount ON fbautoreply_facebookfanpage.facebook_account_id = fbautoreply_facebookaccount.id '
'WHERE fbautoreply_facebookaccount.user_id = %s ', [str(request.user.id)])
if form.is_valid():
form = form.save(commit=False)
form.user = request.user
form.save()
return redirect('autoresponder_list')
return render(request, template_name, {'form':form})
正如第一条注释所说,您似乎在对queryset调用all()。如果要将原始sql查询分配给变量,则不必在执行原始sql查询后调用.all(),因为该变量已包含查询获取的所有对象。在
如果你打电话给t.all()
^{pr2}$因此,您似乎是在执行一个sql原始查询之后调用
all()
。删除这段代码,它就会被解决。 如果要使用更好的方法执行sql查询,可以引用to this section of django docs。在编辑
尝试将
form.fields["set_auto_reply_for_fan_page"].query
更改为form.fields["set_auto_reply_for_fan_page"].queryset
相关问题 更多 >
编程相关推荐