Làm cách nào để bạn xác định trình xác thực tùy chỉnh trong Biến dạng/Colander có quyền truy cập vào tất cả các giá trị nút. Tôi cần truy cập các giá trị từ hai trường để quyết định xem một giá trị cụ thể có hợp lệ hay không?Trình xác thực biến dạng/dấu tham số có quyền truy cập vào tất cả các nút?
8
A
Trả lời
3
Dưới đây là ví dụ về xác thực liên trường. http://deformdemo.repoze.org/interfield/
2
tangibly câu trả lời là:
def verify_email_validator(form, values):
if values['email_address'] != values['verify_email']:
raise Invalid(form, 'Email values do not match')
class MySchema(MappingSchema):
def __init__(self, *args, **kwargs):
super(KickEntrySchema, self).__init__(*args, **kwargs)
self.validator=verify_email_validator # entire form validator
email_address = SchemaNode(Email())
verify_email = SchemaNode(Email())
Note validator hình thức được gọi chỉ khi không có xác nhận lĩnh vực cá nhân nâng cao một lỗi.
3
Để đặt một validator cho tất cả các lĩnh vực colander chúng tôi chỉ có thể làm phương pháp này
validator:
def user_DoesExist(node,appstruct):
if DBSession.query(User).filter_by(username=appstruct['username']).count() > 0:
raise colander.Invalid(node, 'Username already exist.!!')
Schema:
class UserSchema(CSRFSchema):
username = colander.SchemaNode(colander.String(), description="Extension of the user")
name = colander.SchemaNode(colander.String(), description='Full name')
extension = colander.SchemaNode(colander.String(),description='Extension')
pin = colander.SchemaNode(colander.String(), description='PIN')
Xem:
@view_config(route_name='add_user', permission='admin', renderer='add_user.mako')
def add_user(self):
#Here you can provide validator method as a parameter. And you can validate any field you want.
schema = UserSchema(validator = user_DoesExist).bind(request=self.request)
form = deform.Form(schema, action=self.request.route_url('add_user'), buttons=('Add User','Cancel'))
Đúng nếu tôi sai trong trường hợp của tôi.
Cảm ơn
Các vấn đề liên quan
- 1. Truy cập tất cả các nút trong Điều khiển TreeView
- 2. Truy cập tất cả các đối số hàm trong R
- 3. Tại sao chữ số không có quyền truy cập vào các phương thức Số?
- 4. Xác thực @ScriptAssert với quyền truy cập vào các phương pháp tĩnh
- 5. truy cập vào tất cả các mục trong JTOKEN, Json.NET
- 6. Quyền truy cập vào sys.dm_db_index_usage_stats
- 7. PHP truy cập tất cả các biến $ _POST [] vào một mảng?
- 8. Truy cập vào tất cả các hạt đậu mùa xuân thuộc một loại nhất định
- 9. Xác thực WPF: Xóa tất cả các lỗi xác thực
- 10. Templating with Twig - truy cập vĩnh viễn vào một biến trong tất cả các mẫu của tôi
- 11. Quyền truy cập chung vào DbContext
- 12. Lớp dịch vụ có quyền truy cập vào HttpContext không?
- 13. truy cập vào các thông số POST
- 14. Truy cập vào tất cả các tệp trên Google Drive của người dùng
- 15. Xác thực tham số không thành công. Không thể cung cấp các giá trị hợp lệ cho tất cả các tham số. (RsParameterError) sql báo cáo 2008
- 16. Làm cách nào để chuyển một tham số vào báo cáo truy cập theo chương trình?
- 17. Làm thế nào đến eval không có quyền truy cập vào các biến scoped theo một tuyên bố với?
- 18. Trình xác thực/Ràng buộc tùy chỉnh với các đối số/tham số trong Symfony 2
- 19. Truy cập vào nút chính Mongoid 3
- 20. xuất tệp XML lồng nhau khỏi quyền truy cập. cần tệp XML với các nút
- 21. require.js: Truy cập tất cả các mô-đun đã tải
- 22. Xem tất cả biến đã xác định
- 23. Một số nút cassandra trong cụm không thể truy cập được ngay cả tất cả các nút đều đang hoạt động
- 24. Tìm tất cả các bài tập cho biến số
- 25. Tham số truy cập từ Command Class
- 26. Xác định quyền truy cập bộ nhớ xấu trên Solaris
- 27. DNS nào có quyền truy cập API?
- 28. Có thể truy cập tất cả các đỉnh trong đa giác trong trình đổ bóng đỉnh không?
- 29. Đọc tất cả các tham số từ SYS_CONTEXT/USERENV
- 30. Thực hiện tất cả các biến toàn cầu
Giải pháp này không hoạt động khi bạn kết MySchema mẫu trong một cái nhìn tức deform.Form (MySchema(). Bind(), các nút = ('Gửi', 'Hủy'),. ...). Giải pháp của Tim Hoffman hoạt động và đáng giá khi nhấp vào vì nó đề xuất chỉ cần truyền tham số từ khóa thay vì ghi đè phương thức. –