TypeError: only () принимает 2 позиционных аргумента, но 3 были заданы - PullRequest
1 голос
/ 07 февраля 2020

Здесь я пытаюсь получить только два поля от Кассандры, используя only (), но когда я передаю имена полей, это выдает мне ошибку выше, я также пытался передать self , но не сработало. После получения этих двух полей мне нужно преобразовать их в два массива, чтобы я мог построить график с именами и метками.

Вот код:

from flask import *
from flask_cqlalchemy import CQLAlchemy

app = Flask(__name__)
app.config['CASSANDRA_HOSTS'] = ['127.0.0.1']
app.config['CASSANDRA_KEYSPACE'] = "emp"

db = CQLAlchemy(app)

class Student(db.Model):
    uid = db.columns.Integer(primary_key=True)
    marks = db.columns.Integer(primary_key=True)
    username = db.columns.Text(required=True)
    password = db.columns.Text()

    @app.route('/meriting')
    def show_meritlist():
        ob = Student.objects().filter().only(Student.marks, Student.username)
        ob = ob.filter(Student.marks >= 65).allow_filtering()
        return render_template('merit.html', ml = ob)

db.sync_db()
if __name__ == '__main__':
    app.run(debug = True)

1 Ответ

1 голос
/ 07 февраля 2020

only() принимает только один параметр, который должен быть итеративным. Попробуйте:

ob = Student.objects().filter().only((Student.marks, Student.username))
...