hackish путь, но можно попытаться поместить регистрирующийся код в admin.py. Это, как предполагается, импортируется только однажды.
, Кроме того; можно ли сначала проверить, существует ли MyApp.views.scans
журнал? Если это существует (возможно, ошибка повышена), можно просто пропустить создание (и поэтому не добавить обработчик снова). Более чистый путь, но я не попробовал это все же.
Также должно быть более соответствующее место для помещения этого кода (__init__.py
?). settings.py
для настроек.
К сожалению, в PowerShell нет эквивалента. Я написал об этом сообщение в блоге с предложением для универсальной функции / фильтра Test-Any.
function Test-Any() {
begin {
$any = $false
}
process {
$any = $true
}
end {
$any
}
}
Сообщение в блоге: Есть ли что-нибудь в этом конвейере?
Мой подход теперь был таков:
gci -r -force `
| ? { $_.PSIsContainer -and $_.Name -match "^[._]svn$" } `
| select Parent -Unique
Причина, по которой
select-object {$_.Directory}
не возвращает ничего полезного, заключается в том, что такого свойства нет в объекте DirectoryInfo
. По крайней мере, не в моей PowerShell.
Чтобы уточнить ваш собственный ответ: PowerShell может обрабатывать большинство непустых коллекций как $ true
, поэтому вы можете просто сделать:
$svnDirs = gci `
| ? {$_.PsIsContainer} `
| ? {
gci $_.Name -Force `
| ? {$_.PSIsContainer -and ($_.Name -eq "_svn" -or $_.Name -eq ".svn") }
}
В итоге я сделал это с помощью счета:
$directoryContainsSvn = {
(Get-ChildItem $_.Name -force | ? {$_.PsIsContainer -and $_.Name -eq "_svn" -or $_.Name -eq ".svn"} | Measure-Object).Count -eq 1
}
$svnDirs = Get-ChildItem | ? {$_.PsIsContainer} | ? $directoryContainsSvn
Вы можете немного уточнить это:
gci -fo | ?{$_.PSIsContainer -and `
(gci $_ -r -fo | ?{$_.PSIsContainer -and $_ -match '[_.]svn$'})}
Примечание - передача $ __. Name во вложенный gci не требуется. Достаточно передать $ _.