from django.urls import reverse_lazy from django.views.generic import CreateView from dnsmasq.models import DhcpOption, DhcpTag from website.views.generic import GenericMixin from website.views.require_login import RequireLoginMixin class DhcpOptionsCreateView(RequireLoginMixin, GenericMixin, CreateView): model = DhcpOption fields = ['tag', 'option', 'description', 'character_value', 'numeric_value', 'forced', 'is_active'] success_url = reverse_lazy('website.dhcp_options.list') template_name = 'website/dhcp_options/detail.html' page_title = 'Create new DHCP option' def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) # If the tag is passed set it as disabled/fixed if 'tag' in self.kwargs: context['form'].fields['tag'].disabled = True return context def get_initial(self): results = super().get_initial() # If the tag is passed set its value if tag_id := self.kwargs.get('tag', None): results['tag'] = DhcpTag.objects.get(pk=tag_id) return results