Receiving null values from python mixer Receiving null values from python mixer flask flask

Receiving null values from python mixer


Turns out it's a simple answer-- Mixer doesn't generate data for fields that can be null. So either specify that in your models, for example this works:

from flask import Flaskfrom flask.ext.sqlalchemy import SQLAlchemyfrom mixer.backend.flask import mixerapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://'db = SQLAlchemy(app)mixer.init_app(app)class User(db.Model):    id = db.Column(db.Integer, primary_key=True)    username = db.Column(db.String(80), unique=True, nullable=False)    email = db.Column(db.String(120), unique=True, nullable=False)    def __repr__(self):        return '<User %r>' % self.usernameif __name__ == '__main__':    with app.app_context():        db.create_all()        user = mixer.blend(User)        print user.id, user.username        # Prints: 1 collins1995

Or tell Mixer what fields you want it to generate if you want to keep them nullable:

from flask import Flaskfrom flask.ext.sqlalchemy import SQLAlchemyfrom mixer import fakers as ffrom mixer.backend.flask import mixerapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://'db = SQLAlchemy(app)mixer.init_app(app)class User(db.Model):    id = db.Column(db.Integer, primary_key=True)    username = db.Column(db.String(80), unique=True)    email = db.Column(db.String(120), unique=True)    def __repr__(self):        return '<User %r>' % self.usernameif __name__ == '__main__':    with app.app_context():        db.create_all()        user = mixer.blend(User, username=f.get_username(), email=f.get_email())        print user.id, user.username, user.email        # Prints: 1 lover_boots robinson1963@google.vn

Thanks to klen, the author of Mixer for providing the solution.