小编Kri*_*azs的帖子

使用当前模型ID的Django管理文件上传

我正在尝试使用默认的Django管理员创建一个简单的照片库.我想为每个图库保存一张示例照片,但我不想保留该名称.而不是文件名,我想保存模型的ID(N.jpg).但是我第一次想要保存对象时id不存在.我怎么能知道模型中的下一个自动增量,或以某种方式保存模型数据在上传之前super.save和之后上传文件时self.id存在?有一个很酷的解决方案吗?

像这样的东西:

def upload_path_handler(instance, filename):
    ext = filename extension
    return "site_media/images/gallery/{id}.{ext}".format(id=instance.nextincrement, ext=ext)

class Gallery(models.Model):
    name  = models.TextField()
    image = models.FileField(upload_to=upload_path_handler)
Run Code Online (Sandbox Code Playgroud)

并且可能将文件名存储在不同的字段中.

python django upload django-models django-admin

15
推荐指数
2
解决办法
7499
查看次数

Gitlab CI/CD env var 仅在 master 上可用

如果我推送到 master,它会完美运行,所有环境变量都可用,并且我已成功部署到 Heroku。

问题:如果我推送到开发分支,它无法看到部署的环境变量。

$ dpl --provider=heroku --app=$HEROKU_DEV_APP --api-key=$HEROKU_API_KEY
invalid option "--api-key="
ERROR: Job failed: exit code 1 
Run Code Online (Sandbox Code Playgroud)

环境设置:

gitlab环境配置

.gitlab-ci.yml:

stages:
  - build
  - test
  - deploy

build:
  stage: build
  image: maven:3.6.3-jdk-14
  script:
    - mvn clean package
  tags:
    - docker

test:
  stage: test
  image: maven:3.6.3-jdk-14
  script:
    - mvn test
  tags:
    - docker

deploy_dev:
  stage: deploy
  image: ruby:2.3
  script:
    - apt-get update -qy
    - apt-get install -y ruby-dev
    - gem install dpl
    - dpl --provider=heroku --app=$HEROKU_DEV_APP --api-key=$HEROKU_API_KEY
  environment:
    name: prod …
Run Code Online (Sandbox Code Playgroud)

continuous-integration heroku gitlab gitlab-ci

3
推荐指数
1
解决办法
2011
查看次数