Allowing a Django-admin user to add an  to a  dropdown
there is only one requirement - select field must get a list of values or list of tuple (value, description), of course saving those options is the second thing
how you will do this is up to you - you need to find a solution that will fit your needs and skills
simplest is to have secondary table, referenced from primary table as foreign key - you can create very fast admin for this model and it will work straight forward (problems will start when you get a lot of choices...)
other option option is to use any django module, which provide "dynamic settings" - some of them have options to store lists, some of them provide only simple objects, but even then you can store comma separated lists in text field
another option is to store data in files (even .py file that can be imported)
each of those options will be fine, you have the tools, now - choose wisely!
I have a contact form that is posting values to a model called Enquiry. The Enquiry model has an attribute named enquiry_type which is a dropdown select box on the form. Current options are 'general enquiry' & 'request a call back'.
My question is what is the best practice to allow an admin to add to this dropdown? I was thinking of creating another model named EnquiryType with an attribute .text, & iterate through this in the form? This would allow an admin to create new objects with a .text value of their choice. E.g they could add 'Request an email quote' to the dropdown. 
Is this correct thinking or is there a simpler/more accepted protocol? Sorry Im still new to Django!