Flask-Admin - 外键查找创建如果未找到

时间:2015-12-22 17:43:13

标签: python flask flask-admin

我有一个Flask Admin部分,它使用SQLAlchemy Models来构建表单。

我无法弄清楚如何进行“如果找不到外键,插入新记录”这样的操作。

例如。采用以下SQLAlchemy模型

class Room(Base):
    __tablename__ = 'rooms'

    id = sqlalchemy.Column(sqlalchemy.Integer,
                           primary_key=True,
                           autoincrement=True
                           )
    description = sqlalchemy.Column(sqlalchemy.String(256))
    name = sqlalchemy.Column(sqlalchemy.String(32))
    phone_numbers = relationship('RoomPhoneNumber',
                                 backref='room')
    intercom_numbers = relationship('RoomIntercomNumber',
                                    backref='room')


class RoomPhoneNumber(Base):
    """
    A phone number assigned to a given room.
    """
    __tablename__ = 'roomextensions'
    id = sqlalchemy.Column(sqlalchemy.Integer,
                           primary_key=True,
                           autoincrement=True
                           )
    number = sqlalchemy.Column(sqlalchemy.String(25))
    room_id = sqlalchemy.Column(sqlalchemy.Integer,
                                sqlalchemy.ForeignKey(Room.id)
                                )

Admin ModelView

class RoomAdmin(sqla.ModelView):
    def is_accessible(self):
        return login.current_user.is_admin
    column_auto_select_related = True
    column_searchable_list = ('name', 'description')
    column_display_pk = True
    column_list = ('id', 'description', 'name', 'phone_numbers', 'intercom_numbers')
    form_columns = ['description', 'name', 'phone_numbers', 'intercom_numbers']

Room Admin Model不允许我输入新的RoomPhoneNumber我希望能够从Room Admin模型中输入电话号码,如果找不到,只需将其插入当前生成的房间ID,无需转移到RoomPhoneNumberAdmin页面

Flask-Admin中是否有配置我缺少,或者这是一个糟糕的数据库设计问题?

感谢阅读,如果需要,可以发布更多信息。

不允许不存在的值     enter image description here

0 个答案:

没有答案