2015-04-08 5 views
7

Я использую SQLAlchemy для Flask для создания некоторых моделей. Проблема в том, что почти все мои столбцы нуждаются в nullable=False, поэтому я ищу способ установить этот параметр по умолчанию при создании столбца. Разумеется, я мог бы добавить их вручную (как упражнение Vim), но сегодня мне это не нравится. Для справки, это как моя установка (models.py) выглядит следующим образом:SQLAlchemy set default nullable = False

from flask.ext.sqlalchemy import SQLAlchemy 

db = SQLAlchemy() 

class User(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    username = db.Column(db.String(80), nullable=False) 

и многое другое. Есть ли простой способ сделать это?

Заранее спасибо.

+1

по умолчанию Nullable является Ложные –

+1

Подождите, я поворачиваюсь с ума, по умолчанию обнуляемым это ложь? Был ли это sqlite3, который по умолчанию имеет значение nullable true? –

+4

По умолчанию «nullable = True», я проверил. –

ответ

15

просто создать оболочку, которая устанавливает его

def NullColumn(*args,**kwargs): 
    kwargs["nullable"] = kwargs.get("nullable",True) 
    return db.Column(*args,**kwargs) 

... 
username = NullColumn(db.String(80)) 

с использованием functools.partial, как это рекомендовано в комментариях

from functools import partial 
NullColumn = partial(Column,nullable=True) 
+8

Вместо этого используйте functools.partial. –

+1

@PedroWerneck Я не согласен ... но просто хотел, чтобы это было просто: P (хотя теперь, когда я добавил его ... это довольно простой dan) –