У меня есть простая форма HTML для фильтрации / упорядочивания данных на странице. При этом используется запрос GET
к представлению, которое возвращает данные из серверной части способом, который был запрошен. Я хочу использовать метод модели вместо атрибута в качестве входного значения формы.
Текущий пример, который передает атрибут модели в качестве входного значения (current_score является атрибутом модели):
<input class="form-check-input"
id="Radios4"
name="ordering"
type="radio"
value="-current_score">
<label class="form-check-label" for="exampleRadios4">Scores: High-to-Low</label>
Проблема в том, что current_score
возвращает количество правильных вопросов, пока я хочу получить процентную оценку пользователя на тесте.
Что рассчитывается с использованием этого метода модели :
@property
def get_percent_correct(self):
dividend = float(self.current_score)
divisor = len(self._question_ids())
if divisor < 1:
return 0 # prevent divide by zero error
if dividend > divisor:
return 100
correct = int(round((dividend / divisor) * 100))
if correct >= 1:
return correct
else:
return 0
Итак, мой вопрос, как можно Я использую метод модели в качестве входного значения в форме?
Например, :
<input class="form-check-input"
id="Radios4"
name="ordering"
type="radio"
value="get_percent_correct">
<label class="form-check-label" for="exampleRadios4">Scores: High-to-Low</label>
Единственные параметры, которые дает Django, - это атрибуты модели:
django .core.exceptions.FieldError: Невозможно разрешить ключевое слово 'get_percent_correct' в поле. Доступны следующие варианты: полный, текущий_счет, конец, идентификатор, неверные_перечения, список_просетов, порядок_допросов, викторина, идентификатор_произведения, начало, пользователь, user_answers, идентификатор_пользователя