Thanks for the advice. I'll try implement it this way, however it would require more work. For example the original fields can't be blank and a form should fill them with some meaningful values. Also seen several utility functions where fields are queried by names with billing_detail_ and shipping_detail_ prefixes, so they need to be checked to prevent some unexpected malfunction.
Regards On Tuesday, May 10, 2016 at 6:42:25 PM UTC+2, Rodrigo Gadea wrote: > > > > On Tue, May 10, 2016 at 11:54 AM, David Unric <[email protected] > <javascript:>> wrote: > >> I'd like replace field type for billing/shipping country, at >> cartridge.shop.models.Order model. >> Instead of plain CharField I'd like use CountryField from >> django_countries. >> >> Is that possible with Mezzanine and how ? >> >> settings.EXTRA_MODEL_FIELDS does not work, it throws an exception same >> named field already exists. It sounds logical as it serves for >> *extending* models, not replacing. >> I can't also find a setting to specify alternate class for Order model so >> it seems subclassing won't be an option. >> >> Any better idea then a fuzzy conversion to/from CountryField in custom >> form ? >> > > > One workaround might be save whatever in the old fields (because those are > required) and remove them from displaying (i.e. in the admin) while show > the new field. Although a bit nasty, it might work :) > > I was working on customizing the order process and the way here - from > what I found from other packages, don't know if it is the best - seems to > be adding the fields you need to the model and the form, and removing the > not-needed from the form, the view and other parts. > > For removing from the form, you have to hack on the __init__ of the Order > form (which you can specify), you have to mark as not required and remove > the widgets or provide a workaround. > > In the view, you may end monkey patching the order view - you copy the > source code, modify it and then assign it, i.e. "show_views.checkout_steps > = your_checkout_steps". (This is the most complicated part to me) > > This article shows examples of the techniques; > http://bitofpixels.com/blog/collecting-additional-information-on-a-per-product-basis-in-cartridge/ > > For examples on modifying the Order form look at the payments packages, > i.e.: > > https://github.com/explodes/cartridge-payments/blob/master/payments/multipayments/forms/base.py > > > > HTH, > Rodrigo > > >> -- >> You received this message because you are subscribed to the Google Groups >> "Mezzanine Users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "Mezzanine Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
