我是 Docker 的新手,我正在尝试使用 docker-compose 和 docker-machine 将我的 Django rest API 放入一个带有 Nginx、Gunicorn 和 Postgres 的容器中。按照本教程:https : //realpython.com/blog/python/django-development-with-docker-compose-and-machine/
我的大部分代码与教程(https://github.com/realpython/dockerizing-django)相同。有一些小的名称更改。
这是我的docker-compose.yml(为了调试目的,我将 gunicorn 命令更改为 runserver)
web:
restart: always
build: ./web
expose:
- "8000"
links:
- postgres:postgres
- redis:redis
volumes:
- /usr/src/app
- /usr/src/app/static
env_file: .env
environment:
DEBUG: 'true'
command: /usr/local/bin/python manage.py runserver
nginx:
restart: always
build: ./nginx/
ports:
- "80:80"
volumes:
- /www/static
volumes_from:
- web
links:
- web:web
postgres:
restart: always
image: postgres:latest
ports:
- "5432:5432"
volumes: …Run Code Online (Sandbox Code Playgroud) 我的应用程序中有通用链接设置.
现在,当我在Safari浏览我的网站并访问UL注册链接时,它会在safari中打开并询问我是否要在我的应用程序中打开.
有没有办法在应用程序中始终打开?没有提示在应用程序中打开,只是在安装时打开,否则继续在safari中.
我有一个Model和ModelSerializer这个领域:
models.py:
leftovers_from = models.ForeignKey('DayPlanning', null=True, blank=True, related_name='extra_for', on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)
serializers.py:
leftovers_from_id = serializers.PrimaryKeyRelatedField(queryset=DayPlanning.objects.all(), source='leftovers_from', write_only=True, required=False)
Run Code Online (Sandbox Code Playgroud)
现在,我可以使用POST请求完美地为此模型创建一个新对象(无论是否有此字段为null/ None/为空).
但是,当我尝试使用PATCH更新字段时,我只能使用不同的值(外部模型的PK)更新它.我试过路过null,'',0和-1到leftovers_from_id,但结果要么是This field cannot be empty或PK 0 not found.
如何使用PATCH请求清除此字段?
谢谢!
我在使用 DRF3 中的直通参数序列化多对多关系时遇到了一些麻烦
基本上,我有食谱和成分,通过一个中间模型结合起来,该模型指定了特定成分的使用量和单位。
这些是我的模型:
from django.db import models
from dry_rest_permissions.generics import authenticated_users, allow_staff_or_superuser
from core.models import Tag, NutritionalValue
from usersettings.models import Profile
class IngredientTag(models.Model):
label = models.CharField(max_length=255)
def __str__(self):
return self.label
class Ingredient(models.Model):
recipe = models.ForeignKey('Recipe', on_delete=models.CASCADE)
ingredient_tag = models.ForeignKey(IngredientTag, on_delete=models.CASCADE)
amount = models.FloatField()
unit = models.CharField(max_length=255)
class RecipeNutrition(models.Model):
nutritional_value = models.ForeignKey(NutritionalValue, on_delete=models.CASCADE)
recipe = models.ForeignKey('Recipe', on_delete=models.CASCADE)
amount = models.FloatField()
class Recipe(models.Model):
name = models.CharField(max_length=255)
ingredients = models.ManyToManyField(IngredientTag, through=Ingredient)
tags = models.ManyToManyField(Tag, blank=True)
nutritions = models.ManyToManyField(NutritionalValue, through=RecipeNutrition)
owner = …Run Code Online (Sandbox Code Playgroud)