आप Deform/Colander में एक कस्टम सत्यापनकर्ता को कैसे परिभाषित करते हैं जिस पर सभी नोड मानों तक पहुंच है। यह तय करने के लिए कि क्या कोई विशेष मान मान्य है या नहीं, मुझे दो फ़ील्ड से मूल्यों तक पहुंचने की आवश्यकता है?विकृत/कोलेडर सत्यापनकर्ता जिसके पास सभी नोड्स तक पहुंच है?
8
A
उत्तर
3
इंटरफ़ील्ड सत्यापन का एक उदाहरण यहां दिया गया है। http://deformdemo.repoze.org/interfield/
2
tangibly जवाब है:
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())
नोट प्रपत्र सत्यापनकर्ता शुरू हो जाती है तभी जब अलग-अलग क्षेत्र प्रमाणकों में से कोई भी एक त्रुटि बढ़ा।
3
सभी कोलंडर क्षेत्रों के लिए एक सत्यापनकर्ता रखने के लिए हम केवल इस
सत्यापनकर्ता विधि कर सकते हैं:
def user_DoesExist(node,appstruct):
if DBSession.query(User).filter_by(username=appstruct['username']).count() > 0:
raise colander.Invalid(node, 'Username already exist.!!')
स्कीमा:
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')
दृश्य:
+०१२३५१६४१०६१@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'))
अगर मैं अपने परिदृश्य में गलत हूं तो मुझे सुधारें।
धन्यवाद
संबंधित मुद्दे
- 1. क्लस्टर में कुछ कैसंड्रा नोड्स पहुंच योग्य नहीं हैं, यहां तक कि सभी नोड्स ऊपर और चल रहे हैं
- 2. requ.js: सभी लोड मॉड्यूल तक पहुंच
- 3. डी कंटेनर तक पहुंच
- 4. Flixster डेटा तक पहुंच
- 5. सभी टेक्स्ट नोड्स खोजें
- 6. JAR संसाधनों तक पहुंच
- 7. ओपनएमपीआई: सभी नोड्स नोड 0
- 8. मोंगो डीबी - सभी नोड्स माध्यमिक
- 9. सभी परियोजनाओं से एक सामान्य उपयोग वर्ग तक पहुंच
- 10. मैं एंड्रॉइड में सभी ड्रॉबल्स तक कैसे पहुंच सकता हूं?
- 11. ओकैमल रिकॉर्ड तक पहुंच
- 12. निजी सदस्यों तक पहुंच
- 13. निजी क्षेत्रों तक पहुंच
- 14. सभी सीएसएस शैली गुणों तक पहुंच प्राप्त करें?
- 15. रेल तक पहुंच मॉडल
- 16. माइक्रोसॉफ्ट.Win32.UnsafeNativeMethods तक पहुंच रहा है?
- 17. क्या मेरे पास एक Django मॉडल हो सकता है जिसके पास एक विदेशी कुंजी संदर्भ है?
- 18. मान्यताओं तक पहुंच के साथ सत्यापन @ScriptAssert
- 19. प्रोग्रामिंग के iSight तक पहुंच रहा है?
- 20. जब तक कोई निश्चित माता-पिता तक पहुंच नहीं जाता है तब तक सभी माता-पिता कैसे प्राप्त करें
- 21. क्या कक्षा में ब्रेकपॉइंट जोड़ना संभव है जिसके पास मेरे पास स्रोत कोड नहीं है?
- 22. सुपरक्लास के निजी सदस्यों तक पहुंच
- 23. टेम्पलेट से मॉडल तक पहुंच
- 24. आईफोन संगीत पुस्तकालय तक पहुंच
- 25. Azure MySQL सेवा तक पहुंच
- 26. जेएमटर स्क्रिप्ट पथ तक पहुंच
- 27. कच्चे संपर्क डेटा तक पहुंच
- 28. जावा कॉल स्टैक तक पहुंच
- 29. उपकरण परीक्षण संसाधनों तक पहुंच
- 30. NSOutlineView - सभी नोड्स को स्वत: विस्तारित करें
यह समाधान है जब आप एक दृश्य में एक फार्म के लिए MySchema बाँध काम नहीं करता है यानी deform.Form (MySchema()। बाँध(), बटन = ('सबमिट', 'अभी नहीं'),। ...)। टिम हॉफमैन का समाधान काम करता है और क्लिक करने लायक है क्योंकि यह एक विधि को ओवरराइड करने के बजाए केवल एक कीवर्ड पैरामीटर पास करने का प्रस्ताव करता है। –