Выдаёт "Not a valid choice" в Flask RadioField

При попытке отправить форму выдаёт "Not a valid choice" введите сюда описание изображения

вот мой код main.py:

@app.route("/create_news", methods=['GET', 'POST'])
@login_required
def create_news():
    form = NewsForm()
    if form.validate_on_submit():
        session = db_session.create_session()
        article = Articles()
        article.title = form.title.data
        article.heading = form.heading.data
        article.content = form.content.data
        article.category = form.category.data
        current_user.article.append(article)
        session.merge(current_user)
        session.commit()
        return redirect('/')
    return render_template('news_create.html', title='Добавление новости', form=form)

newsform.py:

from flask_wtf import FlaskForm
from wtforms import StringField, RadioField, TextAreaField, SubmitField
from wtforms.validators import DataRequired


class NewsForm(FlaskForm):
    title = StringField('Заголовок', validators=[DataRequired()])
    heading = StringField('Краткое описание статьи', validators=[DataRequired()])
    content = TextAreaField("Содержание", validators=[DataRequired()])
    category = RadioField("Выберите категорию",
                          choices=[
                                    (1, "Games"),
                                    (2, "Movies"),
                                    (3, "Series"),
                                    (4, "Books"),
                                    ],
                          default=1,
                          validators=[DataRequired()])
    submit = SubmitField('Подтвердить')

article.py:

import sqlalchemy
from sqlalchemy import orm

from .db_session import SqlAlchemyBase


class Articles(SqlAlchemyBase):
    __tablename__ = 'articles'
    id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True, autoincrement=True)
    creator = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.ForeignKey("users.id"))
    title = sqlalchemy.Column(sqlalchemy.String, nullable=True)
    heading = sqlalchemy.Column(sqlalchemy.String, nullable=True)
    content = sqlalchemy.Column(sqlalchemy.String, nullable=True)
    category = sqlalchemy.Column(sqlalchemy.Integer, nullable=True)

    user = orm.relation('User')

news_create.html:

{% extends "base.html" %}

{% block content %}
<h1>{{title}}</h1>
<form action="" method="post">
    {{ form.hidden_tag() }}
    {{ form.csrf_token }}
    <p>
        {{ form.title.label }}<br>
        {{ form.title(class="form-control") }}<br>
        {% for error in form.title.errors %}
            <p class="alert alert-danger" role="alert">
                {{ error }}
            </p>
        {% endfor %}
    </p>
    <p>
    {{ form.heading.label }}<br>
    {{ form.heading(class="form-control") }}<br>
    {% for error in form.heading.errors %}
        <p class="alert alert-danger" role="alert">
            {{ error }}
        </p>
    {% endfor %}
    </p>
    <p>
        {{ form.content.label }}<br>
        {{ form.content(class="form-control") }}<br>
        {% for error in form.content.errors %}
            <p class="alert alert-danger" role="alert">
                {{ error }}
            </p>
        {% endfor %}
    </p>
    <p>
        {{ form.category.label }}<br>
        {{ form.category }}<br>
        {% for error in form.category.errors %}
        <p class="alert alert-danger" role="alert">
            {{ error }}
        </p>
        {% endfor %}
    </p>
    <p>{{ form.submit(type="submit", class="btn btn-primary") }}</p>
    {{message}}
</form>
{% endblock %}

Помогите пожалуйста. Уже не знаю как это можно было бы исправить


Ответы (1 шт):

Автор решения: Abus

достаточно было изменить article.category = form.category.data на article.category = form.category.data[0]

→ Ссылка