Я пытаюсь решить проблему, которую изложил в этот вопрос . На данный момент похоже, что мне придется переопределить метод to_python () в поле ForeignKey. Но, насколько я вижу в исходном коде django, класс ForeignKey на самом деле не имеет объявленного метода to_python (), поэтому он должен наследовать его от класса Field, что означает, что он выглядит так:
def to_python(self, value):
"""
Converts the input value into the expected Python data type, raising
django.core.exceptions.ValidationError if the data can't be converted.
Returns the converted value. Subclasses should override this.
"""
return value
Только это не может быть правильным ... Это означает, что он не генерирует ошибку ValidationError. И все же, безусловно, что-то должно быть выброшено ... Я имею в виду, что преобразование идентификатора в объект должно происходить где-то, и, конечно, если идентификатор был неверным, выдается ValidationError?
Или, возможно, правильный вопрос - какие другие методы вызываются перед методом clean_ <fieldname>
() в форме? Какие из них я могу переопределить?