Из таблицы под названием компания я получаю три сохраненных значения. в таблице; Компания A, Компания B, Компания C.
В качестве примера из таблицы Company: если я выполняю команду печати один раз внутри функции form.validate, результаты всегда отображаются как [ Компания Компания А]. Поэтому я не могу добавить эти данные в другую таблицу, поскольку в данных они не отображаются как компания A.
Поле queryselect отлично отображает названия компаний, но при чтении данные после form.validate интерпретируются как [Компания Компания A]
Итак, чтобы разбить их...
models.py
Код: Выделить всё
class Company(db.Model):
id = db.Column(db.Integer, primary_key=True)
company = db.Column(db.String(50), unique=True)
contact = db.Column(db.String(50))
def __str__(self):
return '[Company {}]'.format(self.company)
Код: Выделить всё
def company_query():
return Company.query
class ChooseCompanyForm(FlaskForm):
opts = QuerySelectField('Select Company', query_factory=company_query, allow_blank=False, get_label='company')
submit = SubmitField('Submit')
Код: Выделить всё
@app.route("/new_ticket", methods=['GET', 'POST'])
def new_ticket():
form = ChooseCompanyForm()
form.opts.query = Company.query.all()
if form.validate_on_submit():
#company = request.form.get('opts') # tried it this way too
company = form.opts.data
#db.session.add(company)
#db.session.commit()
print(company) # for debugging
#print(form.opts.data) # for debugging
flash('A new ticket has been added to the database.', 'success')
return redirect(url_for('index'))
#return '{}'.format(form.opts.data) #for seeing returned values
return render_template('new_ticket.html', title='Create New Ticket', form=form)
Код: Выделить всё
{% extends "layouts.html" %}
{% block content %}
{{ form.csrf_token }}
New Ticket Information
{{ form.opts.label(class="form-control-label") }}
{{ form.opts }}
[list]
{% for error in form.opts.errors %}
[*][{{ error }}]
{% endfor %}
[/list]
{{ form.submit(class="btn btn-outline-info border-bottom mb-2") }}
{% endblock %}
Код: Выделить всё
{% extends "layouts.html" %}
{% block content %}
Service Desk
[url={{ url_for(]New Ticket[/url] [url={{ url_for(]Home[/url]
{% endblock %}
Отображение оболочки Windows
Я бы хотел, чтобы она возвращала значение названия компании (Компания A, Компания B, Компания C), когда извлекается из form.opts.data, а не из имени объекта, если это имеет смысл. Надеюсь, у меня там все это есть.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ase-python
Мобильная версия