Какие типы опций применимы к SlugField?

Правильно. Если exec работает, perror не будет вызываться, просто потому, что вызов perror больше не существует.

Я считаю, что иногда легче обучать новичков этим понятиям, думать модель исполнения UNIX состоит из процессов , программ и .

Программы являются исполняемыми файлами, такими как /bin/ls или /sbin/fdisk (обратите внимание, что это не включает такие вещи, как bash или скрипты Python, поскольку в этом случае фактическим исполняемым файлом будет интерпретатор bash или python, а не сценарий).

Экземпляры программы - это программы, которые были загружены в память и в основном запущены. Хотя есть только одна программа, такая как /bin/ls, может быть несколько экземпляров ее работы в любой момент времени, если, например, вы и я запускаем ее одновременно.

Эта фраза «загружена в память» где процессы вступают в картину. Процессы - это просто «контейнеры», в которых могут запускаться экземпляры программ.

Итак, когда вы fork процесс, вы получаете два различных процесса, но они все еще каждый из которых запускает отдельные экземпляры программы той же . Вызов fork часто упоминается как тот, который один процесс вызывает, но два процесса возвращаются.

Аналогично, exec не будет влиять на сам процесс, но он будет отбросить текущий экземпляр программы в этом процессе и запустить новый экземпляр запрошенной программы.

Этот сброс в успешном вызове exec - это то, что диктует, что следующий за ним код (perror случай) не будет вызываться.

1
задан Willem Van Onsem 16 January 2019 в 00:10
поделиться

1 ответ

Короче говоря : эти опции вы можете передать в CharField [Django-doc] и, в некоторой степени, Field [Джанго-док] .

SlugField - это класс, который расширяет класс CharField, это можно увидеть в исходном коде [GitHub] :

class SlugField(CharField):
    default_validators = [validators.validate_slug]
    description = _("Slug (up to %(max_length)s)")

    def __init__(self, *args, max_length=50, db_index=True, allow_unicode=False, **kwargs):
        self.allow_unicode = allow_unicode
        if self.allow_unicode:
            self.default_validators = [validators.validate_unicode_slug]
        super().__init__(*args, max_length=max_length, db_index=db_index, **kwargs)

    #...
[ 1127] Таким образом, он устанавливает max_length по умолчанию на 50, db_index на True и allow_unicode на False и передает все позиционные и именованные аргументы супер-конструктору (одному из CharField ].

Класс CharField также передает аргументы своему суперконструктору в соответствии с исходным кодом [GitHub] :

class CharField(Field):
    description = _("String (up to %(max_length)s)")

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.validators.append(validators.MaxLengthValidator(self.max_length))

Это означает, что все сводится к опциям , которые можно передать любому Field [Django-doc] . Например: db_column, default editable, help_text и т. Д.

0
ответ дан Willem Van Onsem 16 January 2019 в 00:10
поделиться
Другие вопросы по тегам:

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