On 5/11/2016 12:24 AM, David Unric 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 ?

It's not all that difficult. I've done something similar with a custom OrderForm class in cartridge-braintree (now maintained by Henri)
https://github.com/henri-hulski/cartridge_braintree/blob/master/cartridge_braintree/forms.py#L77-L83

So basically:
- Create a subclass of OrderForm
- Override the country field widgets
- and in urls.py, use this Order Form as the one used by the shop (pass form_class=myapp.forms.MyOrderForm, when calling the shop/checkout views) (Old style would be to use SHOP_CHECKOUT_FORM_CLASS but that's not recommended for Django 1.8 onwards)


Seeya. Danny.

--
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