Почему не перехватывает значение clean_data?
Есть поле форма input для ввода. Это поле foreignkey. При вводе просит ввести имено pk этого поля, иначе вызывает validationerror. Я пробую решить эту проблему через cleaned_data, то есть перехватываю текст введенный в поле, сравниваю с полем name и возвращаю pk уже. но все равно не работает. что делать?
forms
class SimpleOrderAddForm(forms.ModelForm):
class Meta:
model = Orders
fields = ['service']
def clean_service(self):
name = self.cleaned_data['service']
try:
get_service = Service.objects.get(name=name)
return get_service.pk
except get_service.DoesNotExist:
return name
models
class Orders(models.Model):
service = models.ForeignKey('Service', null=True, blank=True, on_delete=models.PROTECT, verbose_name='Услуга', related_name='get_service')
class Service(models.Model):
name = models.CharField(max_length=150, db_index=True, unique=True, verbose_name='Наименования услуги')
def __str__(self):
return self.name
то есть форма просит ввести pk, а не поле name модели. А надо именно чтобы пользователь вводил имя. Надеюсь понятно объяснил
