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.