ユーザーがカスタムクエリと送信ボタンを作成するためのフィールドがあります。私がいる問題はWeb2pyの文字列処理の例外.AttributeError
のpythonファイル...私はSQLFORM.grid()でその文字列を使用できないことです
def reports():
BlankString = ""
Report0=BlankString
Report1="some category"
Report2="some category"
Report3="some category"
Report4="some category"
Report5="some category"
myQuery="" #step1 - create a query to return results
results = SQLFORM.factory(buttons=[])
form = SQLFORM.factory(
Field('report_type', label='Report Type', requires=IS_IN_SET([Report0, Report1,Report2, Report3, Report4, Report5])),
Field('start_date', 'datetime', label='Start Date'),
Field('end_date', 'datetime', label='End Date'),
submit_button = T('Generate Report'))
userQueryForm = SQLFORM.factory(
Field('userQuery', label=''),
submit_button = T('Generate Report')
)
if userQueryForm.process(keepvalues=True).accepted:
myQuery = userQueryForm.vars.userQuery
if myQuery == BlankString:
return dict(results=results, form=form, userQueryForm=userQueryForm)
if form.process(keepvalues=True).accepted:
atype = form.vars.report_type
if atype == BlankString:
return dict(results=results, form=form, userQueryForm=userQueryForm)
if atype==Report1:
myQuery=(db.auth_user)
elif atype==Report2:
myQuery=(db.auth_group)
if myQuery != BlankString:
results=SQLFORM.grid(myQuery,
csv=True,
editable=False,
create=False,
details=False,
deletable=False,
searchable=False
)
return dict(results=results, form=form, userQueryForm=userQueryForm)
HTMLファイル
{{left_sidebar_enabled=True}}
{{extend 'layout.html'}}
<style>
.container {
width:100%;
border:1px solid #d3d3d3;
}
.container div {
width:100%;
}
.container .header {
padding: 2px;
cursor: pointer;
font-weight: bold;
}
.container .content {
display: none;
padding : 5px;
}
</style>
<h2>Reports</h2>
<p>Please select a report template or choose to write your own.</p>
<div class="container">
<div class="header" onclick="StdRptClick()">
<span>Standard report</span>
</div>
<div class="content" id="StdRptID">
{{=form}}
</div>
<div class="header" onclick="CstmRptClick()">
<span>Advanced report</span>
</div>
<div class="content" id="CstmRptID">
<form method="post" action="">
<table>
<tr>
<td>
<p>
Enter your desired query here.
</p>
{{=userQueryForm}}
</td>
</tr>
</table>
</form>
</div>
</div>
{{option = form.vars.report_type}}
{{option2 = form.vars.userQuery}}
<h3>{{=option2}}</h3>
<script type="text/javascript">
function RequestReport()
{
if($('#CustomQueryID').val() == '')
{
alert("Query can not be blank");
return;
}
else
{
alert("something");
}
}
function StdRptClick()
{
if($('#no_table_report_type').val() == '')
{
$('#no_table_start_date__row').hide();
$('#no_table_end_date__row').hide();
}
$('#CstmRptID').slideUp();
$('#StdRptID').slideToggle();
}
function CstmRptClick()
{
$('#StdRptID').slideUp();
$('#CstmRptID').slideToggle();
}
$('#no_table_report_type__row').on('change',
function()
{
var selText = ($('#no_table_report_type').val());
if(selText == '')
{
$('#no_table_start_date__row').hide();
$('#no_table_end_date__row').hide();
}
else
{
$('#no_table_start_date__row').show();
$('#no_table_end_date__row').show();
}
});
これまでに質問をuserQuery
に入れて送信ボタンを押すと私は
が
「 『はstr』はオブジェクトが属性 『_db』を持っていないが、」どのように私は、クエリユーザが入力したを使用することができますというエラーを取得しますか?