An addendum to the below - I realized I wasn't specifying the class- store field in the quickform. I have added that by using :class-store (class-store 'person) in my make-quickform. I still have the same problem, however.
-Saikat On Feb 23, 1:34 pm, Saikat Chakrabarti <[email protected]> wrote: > Thanks Jan, that worked for me (mostly). Leslie, I see what you are > saying about how it might be hacky to not be using a presentation/ > parser, but it feels even more hacky to me to be conflating a lot of > fields into a single presentation. In the case of the dual password, > it seems fine to have a presentation that displays it as such, but > what if I want to add a captcha to my registration view? The captcha > doesn't have a corresponding slot in the model, but it would be used > by my :satisfies function to make sure the registration is valid. I > guess I don't see how by just creating a new presentation I could do > this properly (i.e. which slot on the model does it make the most > sense do add the captcha field on to?). Jan's approach makes more > sense to me here, but just wondering what your thoughts are. > > Jan, the reason I say mostly above is that I have now run into a > different problem. I no longer get the error I was getting earlier > (or any error for that matter), but my object is simply not getting > created in the database. The code I have right now > is:http://paste.lisp.org/display/76043. I have been able to create > things in the database before (before this I had an :on-success method > defined on my registration view that was writing out clsql syntax to > create the user, and that was working), so I don't believe it's a > connection issue. I realize that this is probably difficult for any > of you to actually debug, just wondering if anyone has seen a problem > like this before or if there is something obvious I am not doing. > > Additionally, I have another form where I have a view mapped to a > model that has float and integer fields. Whenever I tried to submit > this form, however, I would get an error on all the integer and float > fields saying that the value is invalid (even if I put in a number > value into the field). I saw on another (old) post that the only way > to make this work was to define a float/integer type and write a > parser for the type. I managed to get around it for now by defining a > writer on each of those fields that just assigns the value to the slot > of the model, but this seems a bit hacky (maybe not - just seems like > it should be done more automatically). Is the proper way to do this > still to define parsers for float/integer types? > > Thanks a lot for all your help! > > -Saikat > > On Feb 23, 2:06 am, Jan Rychter <[email protected]> wrote: > > > Saikat Chakrabarti <[email protected]> writes: > > > I am trying to create a user registration form that has a "Retype > > > Password" field in the view (which does not map to the model's slot). > > > I would like to use the built in functionality in Weblocks to create a > > > new user through this registration form (without defining my own > > > method for on-success and writing my own CLSQL, if possible). > > > Here's what I do, it uses the form-level validator support that I > > implemented in Weblocks a long time ago and :reader/:writer view > > arguments: > > > (defview user-registration-form (:type form > > [...] > > :satisfies > > (lambda (&key password password2 > > &allow-other-keys) > > (if (string-equal password > > password2) > > t > > (values nil "Passwords do not > > match.")))) > > (password :present-as (password :max-length 128) :label "Password" > > :writer (lambda (pwd obj) > > (setf (slot-value obj 'password) > > (hash-password pwd))) > > :requiredp t) > > (password2 :present-as (password :max-length 128) :label "Password > > (again)" > > :reader (lambda (&rest args) (declare (ignore args)) "") > > :writer (lambda (&rest args) (declare (ignore args))) > > :requiredp t) > > > The 'user' data object only has a 'password' field, of course. > > > --J. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "weblocks" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/weblocks?hl=en -~----------~----~----~----~------~----~------~--~---
