Hi Giles, thanks for your reply.
You can go to drziff.pythonanywhere.com/lettsom and log in as user: guest pwd: camberwell
Go to Orders and click on an order, then click Add Item
The generated HTML on my local system is:
<form method="post" >
<input type="hidden" name="csrfmiddlewaretoken" value="mytoken">
<div id="div_id_product" class="form-group">
<label for="id_product" class="control-label requiredField">Product<span class="asteriskField"></span></label>
<div class="controls ">
<select name="product" class="select form-control" required id="id_product">
<option value="" selected>---------</option>
<option value="6">Some good stuff to make things grow better</option>
<option value="3">shannons stuff</option>
<option value="2">some stuff</option></select> </div> </div>
<div id="div_id_quantity" class="form-group">
<label for="id_quantity" class="control-label requiredField">
Quantity<span class="asteriskField"></span> </label>
<div class="controls ">
<input type="number" name="quantity" value="1" class="numberinput form-control" required id="id_quantity"> </div> </div>
<div class="form-group"> <div class="controls "> <input type="submit" name="save" value="Submit" class="btn btn-primary btn btn-secondary btn-sm" id="submit-id-save" />
<a role="button" class="btn btn-secondary btn-sm"
href="/orders/order_items/8/">Cancel</a> </div></div> </form>
The differences I can see are that the div-id-product class is 'form-group' on the crispy form and 'control-group' on this (non-crispy) form, and each of the controls on the crispy form has an additional class of 'form-control'.