Flask-Security поставляется со встроенной формой и возможностью смены пароля. Я бы порекомендовал использовать это. https://pythonhosted.org/Flask-Security/customizing.html
для редактирования информации о пользователе через представление Flask-Admin, вы можете переопределить эти методы, выполнив следующие действия. Не забудьте добавить «клиент» в качестве принятой роли в вашем классе пользователя flask-admin. Пользовательский фильтр должен фильтровать по current_user_id, поэтому никакой другой профиль пользователя не может быть отредактирован.
def get_query(self)
if "superuser" in current_user.roles:
return self.session.query(self.model) # as original source code
else: # for all other roles
return self.session.query(self.model).filter(
< insert custom filter here> )
def get_count_query(self):
if "superuser" in current_user.roles:
return self.session.query(func.count('*')).select_from(self.model) # as original source code
else: # for all other roles
return self.session.query(func.count('*')).filter(
)
Альтернативным решением было бы создать собственное представление (без использования flask-admin) и назвать его /myprofile.
Как сказанный John Saunders, у Вас должен быть основной файл MSBuild, который обрабатывает процесс.
Вот образец с помощью Задач Сообщества MSBuild: GetSolutionProjects, который получает проекты для данного решения
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Package">
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
<!-- Specify here, the solution you want to compile-->
<ItemGroup>
<Solution Include="C:\slndir\solution.sln"/>
</ItemGroup>
<PropertyGroup>
<Platform>AnyCPU</Platform>
<Configuration>Debug</Configuration>
<!-- Your deployment directory -->
<DeployDir>C:\slbin\Deploy</DeployDir>
</PropertyGroup>
<!-- Gets the projects composing the specified solution -->
<Target Name="GetProjectsFromSolution">
<GetSolutionProjects Solution="%(Solution.Fullpath)">
<Output ItemName="ProjectFiles" TaskParameter="Output"/>
</GetSolutionProjects>
</Target>
<Target Name="CompileProject" DependsOnTargets="GetProjectsFromSolution">
<!--
Foreach project files
Call MSBuild Build Target specifying the outputDir with the project filename.
-->
<MSBuild Projects="%(ProjectFiles.Fullpath)"
Properties="Platform=$(Platform);
Configuration=$(Configuration);
OutDir=$(DeployDir)\%(ProjectFiles.Filename)\"
Targets="Build">
</MSBuild>
</Target>
</Project>
Необходимо будет сделать это "вручную". Создайте основной файл проекта MSBUILD, который создает решение, затем копирует все выводы решения, где оно хочет их. Это (примерно), как Сборка Команды Visual Studio делает это.