小编Juh*_*ila的帖子

在不同订阅下拥有 Terraform azure 状态文件

我在 Azure 中有两个订阅。我们称它们为 sub-dev 和 sub-prod。在 sub-dev 下,我有用于开发的资源(在资源组 rg-dev 中)和用于生产的 sub-prod 资源(在资源组 rg-prod 中)。

现在,我只想为开发和生产只有一个状态文件。我可以这样做,因为我使用 Terraform 工作区(开发和生产)。在 sub-dev (rg-dev) 下有一个名为 tfsate 的存储帐户。它有一个容器等。Azure 后端配置如下:

terraform {
  backend "azurerm" {
    resource_group_name  = "rg-dev"
    storage_account_name = "tfstate"
    container_name       = "tfcontainer"
    key                  = "terraform.tfstate" 
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我想申请开发环境,我必须将 Az Cli 切换到子开发环境。同样,对于生产,我将不得不使用 sub-prod。我使用 az cli 切换默认订阅:

az account set -s sub-prod
Run Code Online (Sandbox Code Playgroud)

问题是状态的存储帐户在 sub-dev 而不是 sub-prod 下。terraform init当默认订阅设置为 sub-prod 时,我会在尝试(或应用)时遇到访问错误。

Error: Failed to get existing workspaces: Error retrieving keys for Storage Account "tfstate": storage.AccountsClient#ListKeys: Failure …
Run Code Online (Sandbox Code Playgroud)

azure terraform terraform-provider-azure

13
推荐指数
2
解决办法
8568
查看次数

Django (admin.e104) 必须继承自“InlineModelAdmin”

尝试将一些模型作为内联模型放入其他两个模型会产生一些奇怪的错误(在标题中)。

我有两种订单模型 - 远程和本地。并且在每一个中,我都需要插入无限数量的产品。另一个目的是在不同列表中显示本地和远程订购的产品的完整列表。

第二个目标的解决方案:使用从第一个继承的第二个产品模型及其自己的经理(对象)。

目标一的解决方案:在订单的管理类中使用内联来按顺序附加正确的产品(本地产品到本地订单,远程产品到远程订单)。

将本地产品的内联添加到本地购买的管理员效果很好。但是将远程产品的内联添加到远程订单管理文件的内联字段会为远程订单的管理类返回错误:

must inherit from 'InlineModelAdmin'.
Run Code Online (Sandbox Code Playgroud)

即使从本地订单的管理文件中删除内联,它也会返回错误。

在models.py中有一些像这样的代码:

must inherit from 'InlineModelAdmin'.
Run Code Online (Sandbox Code Playgroud)

在 admin.py

class RemotePurchaseModel(models.Model):
    title = models.CharField
    number = models.IntegerField
    ...

class LocalPurchaseModel(models.Model):
    title = models.CharField
    number = models.IntegerField
    ...

class LocalProductModel(models.Model):
    remote = models.BooleanField(default=False)
    actual_order = models.ForeignKey(to=LocalPurchaseModel, blank=True, null=True)
    remote_purchase = models.ForeignKey(to=RemotePurchaseModel, blank=True, null=True)
    ...

class RemoteProductManager(djando.db.models.Manager):
    def get_queryset(self):
        return super(PurchasedProductManager, self).get_queryset().filter(remote=True)

class RemoteProductModel(LocalProduct):
    proxy = True
    objects = RemoteProductManager
    ...

...
Run Code Online (Sandbox Code Playgroud)

而且这种变化的原因是两个在管理端显示本地和远程产品的不同字段集。当然,LocalProductModel 中存在所有字段。有什么线索吗?谢谢。

django django-admin

8
推荐指数
2
解决办法
3834
查看次数

在admin中列出对象时的django预取

我有以下型号:

class UserProfile(models.Model):
  name = models.CharField()
  info = models.OneToOneField(UserInfo, related_name='user')

class UserInfo(models.Model):
  def __unicode__(self):
    return self.user.__unicode__() + self.age
  age = models.IntegerField()

class Ticket(models.Model):
  userinfo = models.ForeignKey(UserInfo)
Run Code Online (Sandbox Code Playgroud)

问题现在在Ticket管理界面中.Ticket的userinfo字段呈现为下拉列表.如果数据库中有大量UserInfo,则每个UserInfo都会对数据库(UserProfile)进行一次调用以生成其名称.

如何在呈现UserInfo下拉列表时告诉管理员(或任何小部件)预取相关的UserProfiles?

我正在寻找类似的东西

info = models.OneToOneField(UserInfo, related_name='user', prefetch_in_bulk=True)
Run Code Online (Sandbox Code Playgroud)

django django-forms django-admin

5
推荐指数
1
解决办法
2476
查看次数

MSBuild 缺少目标 WebPublish

我正在尝试在我们的 CI 服务器上发布一个网站。

由于某种原因,目标 WebPublish 在使用 MSBuild 12.0 构建时可以工作,但不能使用 MSBuild 14.0。

我可以使用以下命令测试它:msbuild My.Web.csproj /t:WebPublish 它适用于 12.0。MSBuild 14.0 给出错误:构建失败。

R:\My.Web\My.Web.csproj" (WebPublish target) (1) ->
R:\My.Web\My.Web.csproj : error MSB4057: The target "WebPublish" does not exist in the project.

0 Warning(s)
1 Error(s)
Run Code Online (Sandbox Code Playgroud)

我安装了 Visual Studio 2012 和 2015。我还需要在 CI 服务器中安装其他东西吗?

asp.net msbuild visual-studio visual-studio-2015

5
推荐指数
1
解决办法
5952
查看次数

仅在加载组件后才在 vue-router 中滚动页面

根据 vue-router 文档(https://router.vuejs.org/guide/advanced/scroll-behavior.html#async-scrolling),您可以执行“异步滚动”。我有一个单页应用程序,其中页面的高度逐页变化。返回时,我想将页面滚动到用户单击链接的同一位置。

现在,当立即返回时,页面的组件尚未完全加载,并且页面的整体高度不够长。在组件加载之前,滚动到savedPosition只会到达页面底部。

我可以在 nuxt.config.js 中执行此操作

 router: {
    scrollBehavior (to, from, savedPosition) {
      if (savedPosition)
      {
        return new Promise((resolve, reject) => {
          setTimeout(() => {
            resolve(savedPosition)
          }, 300)
        })
      }
Run Code Online (Sandbox Code Playgroud)

这将等待 300 毫秒,大约在页面高度被解析的时间,然后才向下滚动。但这并不是最佳的。如果组件的加载时间较长怎么办?

如何仅在页面上的组件加载后实现 vue-router 滚动?

我可以监听 vue-router 页面中的事件吗scrollBehavior?我可以以某种方式等待 Vue 生命周期挂钩来触发滚动吗?我可以触发页面高度变化吗?

vue.js vue-router nuxt.js

5
推荐指数
1
解决办法
2051
查看次数

解决 Azure 应用服务中的 .NET TypeLoadException

我有一个 Azure 应用服务,我在其中发布了 .NET 应用程序 (.NET Framework 4.7.2)。该应用程序在本地 Visual Studio IIS Express 上运行良好。

当我在应用程序服务中运行它时,我收到 TypeLoadExceptions。例如,有趣的部分是这些错误:

    - System.IO.FileLoadException: Could not load file or assembly 'EPiServer.Forms, Version=3.0.0.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'EPiServer.Forms, Version=3.0.0.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7'

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty …
Run Code Online (Sandbox Code Playgroud)

.net asp.net assemblies azure azure-web-app-service

4
推荐指数
1
解决办法
1956
查看次数