forms.py
34 lines
| 1.4 KiB
| text/x-python
|
PythonLexer
|
r4 | from django import forms | ||
|
r13 | from apps.main.models import Device | ||
|
r4 | from .models import CGSConfiguration | ||
class CGSConfigurationForm(forms.ModelForm): | ||||
#freq0.widget = te | ||||
def __init__(self, *args, **kwargs): | ||||
#request = kwargs.pop('request') | ||||
super(CGSConfigurationForm, self).__init__(*args, **kwargs) | ||||
|
r13 | instance = getattr(self, 'instance', None) | ||
if instance and instance.pk: | ||||
devices = Device.objects.filter(device_type__name='cgs') | ||||
items = devices.values('id', 'name', 'device_type__name', 'ip_address') | ||||
self.fields['experiment'].widget.attrs['readonly'] = True | ||||
self.fields['device'].widget.choices = [(item['id'], '[%s]: %s | %s' % (item['device_type__name'], item['name'], item['ip_address'])) for item in items] | ||||
|
r4 | def clean(self): | ||
|
r13 | return | ||
# # Custom validation to force an integer when type of unit = "Unit" | ||||
# form_data = self.cleaned_data | ||||
# if (form_data['freq0'] or form_data['freq1'] or form_data['freq2'] or form_data['freq3'] < 0): | ||||
# raise forms.ValidationError("Please introduce positive Number") | ||||
# | ||||
# return form_data | ||||
|
r4 | |||
class Meta: | ||||
model = CGSConfiguration | ||||
#exclude = ('freqs', 'clk_in', 'mult','div',) | ||||
|
r11 | # exclude = ('freqs',) | ||
|
r13 | fields = ('experiment', 'device', 'freq0', 'freq1', 'freq2', 'freq3') | ||