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.

Reply via email to