由于 Ubuntu 21.10 不再支持 python 3.6,通常的deadsnakes
方法也不起作用。它给出以下错误。
E: The repository 'http://ppa.launchpad.net/deadsnakes/ppa/ubuntu impish Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
Run Code Online (Sandbox Code Playgroud) 我有一个 Django 模型
from django.db import models
from django.contrib.postgres.fields import ArrayField
class Website(models.Model):
id = models.BigAutoField(primary_key=True, verbose_name='ID')
status = models.BooleanField(default=True)
meta = ArrayField(base_field=models.CharField(max_length=200, null=True), default=list)
Run Code Online (Sandbox Code Playgroud)
我正在使用以下序列化程序将数据保存到数据库:
class WebsiteConfigSerializer(serializers.ModelSerializer):
class Meta:
model = Website
fields = ('status', 'meta')
Run Code Online (Sandbox Code Playgroud)
当我尝试保存以下数据时,出现错误:
{
"status": true,
"meta": []
}
#ERROR:
# "meta : This list may not be empty."
Run Code Online (Sandbox Code Playgroud)
是否无法将空列表保存到ArrayField
?当我根本不传递该字段时,存储的值是{NULL}
。此外,在初始迁移期间,由于我添加了default
值 as list
,所以我所有现有条目的“元”值均为{}
如果根本不允许空列表值,那么为什么在初始迁移期间会保存它?
django postgresql django-models python-3.x django-rest-framework
我在很多地方都看到,使用线程本地存储来存储 Django 应用程序中的任何数据并不是一个好的做法。但这是我存储请求对象的唯一方法。我需要存储它,因为我的应用程序具有复杂的结构。而且我无法继续在每个函数调用或类初始化时传递请求对象。
我需要将请求对象中的 cookie 和标头传递给我在应用程序中不同位置进行的一些 api 调用。
所以我正在使用中间件,如参考文献中所述。而且,这就是请求的存储方式
from threading import local
_thread_locals = local()
_thread_locals.request = request
Run Code Online (Sandbox Code Playgroud)
并且,这就是获取数据的方式:
getattr(_thread_locals, "request", None)
Run Code Online (Sandbox Code Playgroud)
那么存储在线程中的数据是否是该特定请求的本地数据呢?或者,如果同时发生另一个请求,它们是否都使用相同的数据?(这当然不是我想要的)
或者有没有新的方法来处理这个老问题(全局存储请求对象)
注意:我也在async
我的 Django 应用程序中的某些地方使用(如果这很重要的话)。
python django python-multithreading python-3.x django-rest-framework
我正在通过 python 调用 shell 脚本。
在我正在使用的脚本gsutil rm
和gsutil cp
命令中。
但是,每当这两个命令中的任何一个在不存在的 gcp 路径上运行时,都会出现错误。
例如:当我尝试时:
gsutil rm -r gs://some-bucket/somepath-not-present/
Run Code Online (Sandbox Code Playgroud)
我收到错误:
CommandException: 1 files/objects could not be removed.
Run Code Online (Sandbox Code Playgroud)
最终脚本的返回码是1。尽管我的代码本来可以正常执行。我希望脚本在找不到路径时不会给出错误。
有什么办法可以绕过这个。我已经尝试||
过linux,但似乎不起作用。
我正在进行 api 调用,并尝试使用 Django 模型将其响应存储在 Postgres 中。这就是我一直在做的事情:
response = requests.post(url='some.url.com', data=json.dumps(data), headers={'some': 'header'})
response_data = json.loads(response.content.decode('utf-8'))
#handler is a object of a model
handler.api_response = response_data
handler.save()
Run Code Online (Sandbox Code Playgroud)
但是当我的 json 具有像'field_name': '\x00\x00\x00\x00\x00'
. 它曾经给出以下错误:
DataError at /api/booking/reprice/
unsupported Unicode escape sequence
LINE 1: ... NULL, "api_status" = 0, "api_response" = '{"errorRe...
^
DETAIL: \u0000 cannot be converted to text.
CONTEXT: JSON data, line 1: ..."hoursConfirmed": 0, "field_name":...
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下方法解决此问题:
response = requests.post(url='some.url.com', data=json.dumps(data), headers={'some': 'header'})
response_data = json.loads(response.content.decode('utf-8'))
#handler is a …
Run Code Online (Sandbox Code Playgroud) django ×3
python-3.x ×3
postgresql ×2
python ×2
gsutil ×1
linux ×1
python-3.6 ×1
shell ×1
ubuntu ×1