Почему не перехватывает значение 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 модели. А надо именно чтобы пользователь вводил имя. Надеюсь понятно объяснил


Ответы (0 шт):