Как правильно использовать & ldquo; выборы & rdquo; опция поля в Джанго

Или используйте эту функцию javascript, чтобы исправить индексирование: (Замените имя EntityName и поле NameName очевидно)

function fixIndexing() {
        var tableRows = $('#tblMyEntities tbody tr');

        for (x = 0; x < tableRows.length; x++) {
            tableRows.eq(x).attr('data-index', x);

            tableRows.eq(x).children('td:nth-child(1)').children('input:first').attr('name', 'EntityName[' + x + "].FieldName1");

            tableRows.eq(x).children('td:nth-child(2)').children('input:first').attr('name', 'EntityName[' + x + "].FieldName2");

            tableRows.eq(x).children('td:nth-child(3)').children('input:first').attr('name', 'EntityName[' + x + "].FieldName3");
        }

        return true; //- Submit Form -
    }
34
задан user2719875 7 September 2013 в 17:47
поделиться

1 ответ

Я предложил бы использовать django-model-utils вместо Django встроенное решение. Основным преимуществом этого решения является отсутствие строкового дублирования объявления. Все объекты выбора объявляются точно однажды. Также это - самый легкий путь к объявлению выбора с помощью 3 значений и храня значение базы данных, отличающееся, чем использование в исходном коде.

from django.utils.translation import ugettext_lazy as _
from model_utils import Choices

class MyModel(models.Model):
   MONTH = Choices(
       ('JAN', _('January')),
       ('FEB', _('February')),
       ('MAR', _('March')),
   )
   # [..]
   month = models.CharField(
       max_length=3,
       choices=MONTH,
       default=MONTH.JAN,
   )

И с использованием IntegerField вместо этого:

from django.utils.translation import ugettext_lazy as _
from model_utils import Choices

class MyModel(models.Model):
   MONTH = Choices(
       (1, 'JAN', _('January')),
       (2, 'FEB', _('February')),
       (3, 'MAR', _('March')),
   )
   # [..]
   month = models.PositiveSmallIntegerField(
       choices=MONTH,
       default=MONTH.JAN,
   )
  • Этот метод имеет один маленький недостаток: в любом IDE (например, PyCharm) не будет никакого завершения кода для доступного выбора (it’s потому что те значения aren’t типичные члены класса Выбора).
1
ответ дан 27 November 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: