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 <dunr...@gmail.com 
> <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 mezzanine-use...@googlegroups.com <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 mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to