Skip to content

Commit

Permalink
add example for #108 issue
Browse files Browse the repository at this point in the history
  • Loading branch information
uralbash committed Dec 2, 2015
1 parent 381ecc7 commit d3ee0c9
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 5 deletions.
25 changes: 22 additions & 3 deletions example/pyramid_sacrud_example.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from sqlalchemy import Column, String, Boolean, Integer, ForeignKey
from sqlalchemy import Column, String, Boolean, Integer, Unicode, ForeignKey
from pyramid.config import Configurator
from sqlalchemy.orm import relationship, sessionmaker, scoped_session
from sqlalchemy.orm import backref, relationship, sessionmaker, scoped_session
from pyramid.session import SignedCookieSessionFactory
from pyramid.security import Allow, forget, remember
from pyramid.authorization import ACLAuthorizationPolicy
Expand Down Expand Up @@ -46,11 +46,29 @@ def __repr__(self):
return self.name


class Parent(Base):
__tablename__ = 'parents'

slug = Column(Unicode, primary_key=True)
name = Column(Unicode, nullable=False)


class Child(Base):
__tablename__ = 'children'

provider_slug = Column(Unicode, ForeignKey('parents.slug'),
primary_key=True)
slug = Column(Unicode, primary_key=True)

provider = relationship('Parent', backref=backref('children'))


def sacrud_settings(config):
config.include('pyramid_sacrud', route_prefix='admin')
config.registry.settings['pyramid_sacrud.models'] = (
('Catalouge', [Group, Good]),
('Auth system', [User])
('Auth system', [User]),
('foo', [Parent, Child])
)


Expand Down Expand Up @@ -144,3 +162,4 @@ def main(global_settings, **settings):
from wsgiref.simple_server import make_server
server = make_server('0.0.0.0', 6543, app)
server.serve_forever()

2 changes: 1 addition & 1 deletion pyramid_sacrud/common/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def preprocessing_value(key, value, form):
column.typ,
(colander.Int, colander.Integer,
colander.Float, colander.Decimal)):
value = sqlalchemy.sql.null()
value = sqlalchemy.sql.null()
elif value is colander.null:
value = ""
return value
Expand Down
2 changes: 1 addition & 1 deletion pyramid_sacrud/views/CRUD.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ def options_for_response(form):
deserialized = form.validate_pstruct(pstruct).values()
except deform.ValidationFailure as e:
return options_for_response(e)
data = {k: preprocessing_value(k, v, form) #TODO: optimize it
data = {k: preprocessing_value(k, v, form) # TODO: optimize it
for d in deserialized
for k, v in d.items()}
else:
Expand Down

0 comments on commit d3ee0c9

Please sign in to comment.