Comments (7)
You could do something like:
from marshmallow import fields, Schema, ValidationError
def read_only(val):
if val is not fields.missing:
raise ValidationError('Cannot pass a read-only field.')
class AlbumSchema(Schema):
published = fields.Date(validate=read_only)
title = fields.Str()
s = AlbumSchema()
result = s.load({'published': '2014-11-18'})
print(result.errors) # {'published': ['Cannot pass a read-only field.']}
from marshmallow.
This works, but what do you think about making readonly
an optional keyword argument, just like required
is? Django REST Framework, Cerberus and a number of other serilzation / validation libraries implement it this way and I personally find it very convinient.
from marshmallow.
I looked for a read only attribute as well.
Used to working with Django Rest FrameWork
and the read only flag is quite handy.
from marshmallow.
I will consider adding a read-only flag as a kwarg. Thank you for your input.
from marshmallow.
+1
from marshmallow.
I am leaning towards adding this feature, but I will probably call the parameter dump_only
or something similar, for consistency with load_only
as described in #87. This would also avoid confusion over what "read" and "write" mean (keep in mind that marshmallow isn't meant to do any sort of "writing").
Thoughts?
from marshmallow.
Added in #131
from marshmallow.
Related Issues (20)
- Wrong value in __call__() function of validate.Validator HOT 1
- Validation of required nested field is not consistent with previous version
- Create raw list Schema HOT 1
- The function decorated by the "post_load" decorator will undergo changes in parameter types as the function name changes. HOT 1
- Deprecate __version__ and related attributes
- Address deprecation warnings in tests HOT 1
- URL validation fails if URL is missing user field HOT 5
- fields.URL validation error should specify "not a valid FQDN" if trying to pass hostname without domain
- missing `f` for f-Strings HOT 2
- `fields.Url` does not accept `file` URLs
- when a new request, schema context not reset !!! HOT 2
- Questions about Copilot + Open Source Software Hierarchy HOT 3
- Allow None for a allow_none=True Date field HOT 6
- fields.Nested Type Warning Since Version 3.15.0
- Setting many=True through Meta - SchemaOpts HOT 1
- RFE: use `zoneinfo` instead of `pytz` HOT 3
- 3.21.2: pytest fails in units checking time HOT 1
- 3.21.2: sphinx warnings `reference target not found` HOT 2
- Static typing of Field subclass kwargs
- Help understanding how to set Schema meta options when using Schema.from_dict() HOT 1
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 marshmallow.