Python flask sqlalchemy wtf QuerySelectField返回重复项,并添加一个不在db中的默认值
如何在QuerySelectField中仅返回dintinct/unique值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
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,但似乎没用
谢谢你我对我的答案不满意,但使用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是否为空,如果为空,则将其视为“全部”,或者从那时起对其执行任何操作