Ниже приведен пример, который устанавливает ограничение на то, какие данные должны быть сохранены в базе данных, предположим, что если в поле технического отдела отсутствует отдел, существующий в поле выбора, возникнет исключение.
class RepairOrder(models.Model):
'''create a repair order entry by number'''
ro_number = models.CharField(max_length=6, help_text='Enter six digit repair order number.')
date_added = models.DateTimeField(auto_now_add=True)
tech = models.CharField(max_length=20, choices=TECHS, default='none',
help_text='Technician')
writer = models.CharField(max_length=15, choices=WRITERS, default='none',
help_text='Service Writer')
status = models.CharField(max_length=20, choices=STATUSES, default='unassigned',
help_text='Work Status')
promise_time = models.CharField(max_length=8, default='WAIT',
help_text='Promise Time')
job_type = models.ManyToManyField(WorkType)
additional_details = models.TextField(null=True, help_text='Additional Information on Work to be Done')
Надеюсь, вы получили изображение. Теперь, чтобы оно было переключателем или флажками, вам нужно поработать над виджетами формы. Пример:
class SomeForm(forms.ModelForm):
class Meta:
model = ABC
widgets = {'type': forms.RadioSelect}
class SomeForm(forms.ModelForm):
some_field = forms.CharField(choices=MEDIA_CHOICES,
widget=forms.CheckboxSelectMultiple)
class Meta:
model = XYZ
для получения дополнительной информации, вы можете увидеть этот фрагмент