运行两个命令之间的区别是什么:
foo = FooModel()
Run Code Online (Sandbox Code Playgroud)
和
bar = BarModel.objects.create()
Run Code Online (Sandbox Code Playgroud)
第二个是否立即BarModel在数据库中创建一个,而for FooModel,save()必须显式调用该方法以将其添加到数据库中?
我需要在Django模型中存储一些数据.这些数据不等于模型的所有实例.
起初我考虑过继承模型,但我试图保持应用程序的灵活性.如果我使用子类,每次需要一种新的对象时我都需要创建一个完整的类,这并不好.我最终会得到很多子类来存储一对额外的字段.
我真的觉得字典是最好的方法,但Django文档中没有关于在Django模型中存储字典(或者我找不到它)的内容.
有线索吗?
我的API在出错时返回JSON对象,但状态代码为HTTP 200:
response = JsonResponse({'status': 'false', 'message': message})
return response
Run Code Online (Sandbox Code Playgroud)
如何更改响应代码以指示错误?
我正在尝试partial_update使用Django Rest Framework实现,但我需要一些澄清,因为我被卡住了.
为什么我们需要指定partial = True?
根据我的理解,我们可以轻松更新partial_update方法内的Demo对象.这样做的目的是什么?
什么是序列化变量?方法
中serialized变量的内部是什么partial_update?那是一个Demo对象吗?在幕后调用什么功能?
视图集
class DemoViewSet(viewsets.ModelViewSet):
serializer_class = DemoSerializer
def partial_update(self, request, pk=None):
serialized = DemoSerializer(request.user, data=request.data, partial=True)
return Response(status=status.HTTP_202_ACCEPTED)
Run Code Online (Sandbox Code Playgroud)
串行
class DemoSerializer(serializers.ModelSerializer):
class Meta:
model = Demo
fields = '__all__'
def update(self, instance, validated_data):
print 'this - here'
demo = Demo.objects.get(pk=instance.id)
Demo.objects.filter(pk=instance.id)\
.update(**validated_data)
return demo
Run Code Online (Sandbox Code Playgroud) 我是django rest框架的新手,并创建了一个示例Employee模型.
我的models.py:
class Employees(models.Model):
created = models.DateTimeField(auto_now_add=True)
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)
我的serializers.py:
class EmployeeSerializer(serializers.Serializer):
class Meta:
model = Employees
fields = ('first_name','last_name')
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我想要一个额外的字段full_name,这将是first_name + last_name.
如何定义这个全新的领域full_name,我serializers.py?
因此谷歌搜索似乎普遍的共识是在REST URI中嵌入版本号是一种不好的做法,也是一个坏主意.
即便如此,也有强有力的支持者支持这一点.
例如,API版本控制的最佳实践?
我的问题是如何在django-rest-framework中完成使用accept header/content negotiation的提议解决方案来实现这一目标.
看起来框架中的内容协商,
http://django-rest-framework.org/api-guide/content-negotiation/
已经配置为根据接受的MIME类型自动返回预期值.如果我开始使用自定义类型的Accept标头,我将失去框架的这种好处.
有没有更好的方法在框架中实现这一目标?
如何在Django模型中处理并发?我不希望记录的更改被另一个读取相同记录的用户覆盖.
目前是否可以使用公共 ECR 镜像来部署 lambda?我尝试创建公共 ECR 映像,但在 Web 界面中看到错误。我看到错误:“这是无效的 Elastic Container Registry 映像 URI”
Dockerfile:
FROM public.ecr.aws/lambda/nodejs:12
# Alternatively, you can pull the base image from Docker Hub: amazon/aws-lambda-nodejs:12
COPY app.js package.json /var/task/
# Install NPM dependencies for function
RUN npm install
# Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile)
CMD [ "app.handler" ]
Run Code Online (Sandbox Code Playgroud)
我正在使用boto3尝试AWS Cognito.通过阅读AWS文档,我发现很难理解.我正在寻找一个有一步一步解释的示例或教程.
我已经创建了一个Facebook应用程序和Cognito身份池.
amazon-web-services oauth-2.0 facebook-authentication amazon-cognito boto3
我想要一个主键id字段Bigint
class Tweets(Model):
id = BigIntegerField(primary_key=True)
...
Run Code Online (Sandbox Code Playgroud)
但它需要自动递增,我在 Peewee 文档中找不到方法。如果可能,请提出建议。
更新:我正在使用 MySql 数据库。
django ×7
python ×7
amazon-ecr ×1
api ×1
aws-lambda ×1
boto3 ×1
concurrency ×1
database ×1
docker ×1
mysql ×1
oauth-2.0 ×1
orm ×1
peewee ×1
persistence ×1
rest ×1
tastypie ×1