Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python flask sqlalchemy wtf QuerySelectField返回重复项,并添加一个不在db中的默认值_Python_Flask_Sqlalchemy_Wtforms - Fatal编程技术网

Python flask sqlalchemy wtf QuerySelectField返回重复项,并添加一个不在db中的默认值

Python flask sqlalchemy wtf QuerySelectField返回重复项,并添加一个不在db中的默认值,python,flask,sqlalchemy,wtforms,Python,Flask,Sqlalchemy,Wtforms,如何在QuerySelectField中仅返回dintinct/unique值 def getRequestor(): u = Request.query.all() return u class filterRequests(Form): requestor = QuerySelectField(u'Requestor', query_factory=getRequestor, get_label=lambda x: x.request

如何在QuerySelectField中仅返回dintinct/unique值

def getRequestor():
     u = Request.query.all()
     return u


class filterRequests(Form):
     requestor = QuerySelectField(u'Requestor', 
     query_factory=getRequestor, 
     get_label=lambda x: x.requestedBy,get_pk=lambda x: x.requestedBy)
我试图搞乱get_pk,但似乎没用

  • 如何使wtf表单字段默认为不是列中的值的值“all”

  • 谢谢你

    我对我的答案不满意,但使用selectfield代替,这样做很有效:

    他认为:

    @app.route("/request_management",methods=["GET","POST"])
    @login_required
    def Request_management():
        # import pdb;pdb.set_trace()
        form=filterRequests()
        RB= list(set([h.requestedBy for h in models.Request.query.all()]))
        RB.append('chet')
        form.requestor.choices=zip(RB,RB)
    
    形式如下:

    class filterRequests(Form):
        status= SelectField(u'Status?',coerce=int, choices=[(99,'All'),(0,'Lower Priority Request'), (1, 'Incomplete Request'), (2, 'Pending review'),
            (3, 'Assigned'), (4, 'Complete'), (5, 'Rejected')],default=99)
        requestor= SelectField(u'request',default='chet')
    

    听起来您想使用allow_blank

    requestor = QuerySelectField(u'Team', query_factory=getRequestor, get_label='requestedBy', allow_blank=False, blank_text=(u'All'))
    
    然后在视图中使用一些逻辑检查queryselectfield是否为空,如果为空,则将其视为“全部”,或者从那时起对其执行任何操作