views.py:
- in edit_panel() view use PanelEditForm to not allow existing panels to change their site
- added some database query optimizations using select_related() and using an object's foreign key instead of got the FK object and then getting it's id
More FK id database optimizations in models.py, serializers.py, and various templates
views.py:
- more DB optimization: for view_panels and view_samples, use prefetch_related as well to get the '*_set' relations