Как получить символьное значение из целочисленного поля базы данных

#html #angularjs #django

#HTML #angularjs #django

Вопрос:

У меня есть целочисленное поле в БД, которое является полем параметра. Я сохраняю параметры в терминах идентификатора в БД, но мне также нужно отобразить значение в этом поле, относящееся к определенным операциям. Может кто-нибудь здесь, пожалуйста, скажите мне, как получить текстовое значение из поля int и отобразить его? Ниже приведен мой код:

HTML:

 <th col width="55%"><label><strong>Risk Estimation</strong></label>

               <select ng-model="arform.risk_estimate"
                       ng-options="item for item in risk_estimate">
                  <option style="display:none" value=" risk_estimate.text"></option>
               </select>
            </th>
 

Контроллер:

 {{ngapp}}.controller(
        "SiVerifyAddReviewController",
        function($scope, $http, $modalInstance, r_header){

$scope.risk_estimate = ['High','Medium', 'Low'];};
 

Сможет предоставить, если для понимания потребуется дополнительная часть кода. Спасибо.

Ответ №1:

Вы, вероятно, ищете это: https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models .Model.get_FOO_display

 {{ object.get_field_display }}
 

Комментарии:

1. Это работает. Спасибо! Есть идеи, как сделать для поля флажка? get_field_display предназначен только для выбора или может использоваться и для флажка?

2. @SURYAVISWANATHAN нет, это не так. Это работает только для выбранных полей. Но. Вы можете создать cached_property в своей модели, скажем get_some_field_display , и внутри этого свойства вернуть жестко закодированную строку или выполнить некоторые вычисления. Затем в шаблонах просто выполните обычное {{ object.get_some_field_display }}

3. Под cached_property вы подразумеваете использование patch_cache_control? Если возможно, не могли бы вы привести мне пример, в котором я могу использовать cached_property в модели? Я здесь новичок. Спасибо.

4. Нет, это. docs.djangoproject.com/en/1.10/ref/utils/… Просто сохраните имя поля в свойстве модели, и у вас тоже будут шаблоны.

5. Спасибо! Это сработало. Я ожидаю ответа на еще один вопрос, который я недавно опубликовал. Если возможно, не могли бы вы взглянуть на него и предоставить свои данные?

Ответ №2:

Насколько я понимаю, вам нужно получить текст выбранного параметра, когда он когда-либо изменится или будет отправлен правильно?, тогда вам нужно представить все параметры таким образом, чтобы вы получили весь объект выбранного параметра, затем вы можете извлечь из него значение четного текста. Следуйте этому:

 <select  ng-model="selectOption" ng-change="changedValue(selectOption)" 
 data-ng-options="option as allOptions.name for option in allOptions">
<option value="">Select Account</option>
 

// Контроллер будет выглядеть так :

 function ctrl($scope){
    $scope.itemList=[];
    $scope.allOptions=[{id:1,name:"a"},{id:2,name:"b"},{id:3,name:"c"}]

    $scope.changedValue=function(item){
    $scope.itemList.push(item.name);
    }    

}
 

Комментарии:

1. ДА. Вы правы. Мне нужно отобразить отправленное значение. Что делает ng-change в вашем коде? Не могли бы вы также прислать мне функцию контроллера (из ng-change)?

2. @SURYAVISWANATHAN: Конечно, пожалуйста, ознакомьтесь с обновленным кодом.

3. @SURYAVISWANATHAN: Сработало ли это для вас?, дайте мне знать, в противном случае я предоставлю вам другое альтернативное решение на случай, если вы не сможете изменить свой код. (Пожалуйста, также проголосуйте за это :))

4. Привет. Другой ответ здесь намного проще, и он сработал для меня. Я не пробовал ваш, так как не хочу нарушать мой html. В любом случае спасибо!

5. Нет проблем, добро пожаловать 🙂