В администраторе Django я могу потребовать полей в модели, но не, когда это встроено?

var color = "#";
for (k = 0; k < 3; k++) {
    color += ("0" + (Math.random()*256|0).toString(16)).substr(-2);
}

Разбивка того, как это работает:

Math.random()*256 получает случайное число (с плавающей запятой) от 0 до 256 (от 0 до 255 включительно)
Пример результата: 116.15200161933899

Добавление |0 убирает все после десятичной точки.
Пример: 116.15200161933899 -> 116

Использование .toString(16) преобразует это число в шестнадцатеричное (основание 16).
Пример: 116 -> 74
Другой пример: 228 -> e4

Добавление "0" дополняет его нулями. Это будет важно, когда мы получим подстроку, поскольку наш конечный результат должен иметь два символа для каждого цвета.
Пример: 74 -> 074
Еще один пример: 8 -> 08

.substr(-2) получает только два последних символа.
Пример: 074 -> 74
Другой пример: 08 -> 08 (если бы мы не добавили "0", это привело бы к «8» вместо «08»)

Цикл for запускает этот цикл три раза, добавляя каждый результат в строку цвета, создавая что-то вроде этого:
#7408e4

9
задан Mitch 29 June 2009 в 20:16
поделиться

1 ответ

Конечно. Просто определите настраиваемую форму с вашим обязательным полем, переопределенным для установки required = True, и используйте ее в своем классе администратора.

class MyForm(forms.ModelForm):
    required_field = forms.CharField(required=True)

    class Meta:
        model = MyModel

class MyAdmin(admin.ModelAdmin):
    form = MyForm


class MyInlineAdmin(admin.ModelAdmin):
    model = MyModel

Итак, MyAdmin использует переопределенную форму, а MyInlineAdmin - нет.

10
ответ дан 4 December 2019 в 07:04
поделиться
Другие вопросы по тегам:

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