Comments (5)
Instead of...
model = ModelClass()
model.string_field = 'Test' # db.StringField()
model.int_field = 5 # db.IntField()
model.bool_field = False # db.BooleanField()
await model.save()
Use this...
instance = await ModelClass.objects.create(
string_field=...,
int_field=...,
bool_field=...
)
If you really need to build it up gradually you can use this pattern...
kwargs = {}
kwargs['string_field'] = 'Test'
kwargs['int_field'] = 5
kwargs['bool_field'] = False
instance = await ModelClass.objects.create(**kwargs)
Having partially populated model instances, or modifiying model instance properties directly is a problematic pattern and means that model instances don't do a good job of encapsulating valid state changes.
from orm.
Did not test if something like this will work:
class SaveableModel(Model):
async def save(self):
await self.objects.create(**self.fields)
from orm.
It does not work, gives typesystem.base.ValidationError: {'id': 'Must be a number.', ...
All the fields such as Integer and String are not represented as int and str. Maybe I am doing something wrong, but when I used Flask with Datastore from Flask-Security I could just use this code and it would work:
model = ModelClass()
model.string_field = 'Test' # db.StringField()
model.int_field = 5 # db.IntField()
model.bool_field = False # db.BooleanField()
model.save()
from orm.
Related: https://www.dabapps.com/blog/django-models-and-encapsulation/
from orm.
Thanks, did not know that this is problematic pattern :)
from orm.
Related Issues (20)
- Add Email field HOT 1
- Add URL field
- Add `IPAddress` field
- TypeError: 'modelname' object is not subscriptable HOT 4
- Model `__repr__` and `__str__` methods HOT 5
- Making internal functions and variables
- [feature] implement the: auto_now_add auto_now HOT 1
- AttributeError: module 'orm' has no attribute 'ModelRegistry' HOT 9
- Primary key field not being added to any queries HOT 13
- allow_null not respected in ForeignKey field HOT 1
- Add ByteArray Field HOT 3
- How to convert typesystem to JSON?
- How to support 'unique_together' HOT 1
- How to support Model Inheritance? HOT 2
- Create and friends ignore setting the PK HOT 3
- Alembic migrations don't work out of the box HOT 5
- Creating records with empty ForeignKeys fails by default, even when `allow_null` is `True` HOT 1
- Is this project stopped for maintenance? HOT 2
- Can you add something like comment in Sqlalchemy to each field?
- [Feature Request] Support for SQLAlchemy >= 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from orm.