我有以下代码:
def save()
super().save(*args, **kwargs)
try:
transaction.on_commit(lambda: c_task.delay(a, b, self.pk))
except Exception as e:
print(e)
@app.task(bind=True, name='c_task', max_retries=4, soft_time_limit_exception=300)
def c_task(self, a, b, i):
from .models import ModelA
try:
json_data = entity(a,b,i, const)
.....
except Exception as e:
raise self.retry(exc=e, countdown=exponential_backoff(self))
Run Code Online (Sandbox Code Playgroud)
如果Redis服务器失败,我会收到和OperationalError。我尝试像以前一样使用Celery OperationalError或通用异常来捕获它。
该行仍在执行并引发错误。如果Redis失败,我不希望一切都失败,因为我的代码有一个“解决方法”,但我无法捕获错误。
追溯:
transaction.on_commit(lambda: c_task.delay(a, b, self.pk))
\lib\site-packages\celery\app\task.py in delay
return self.apply_async(args, kwargs)
lib\site-packages\celery\app\task.py in apply_async
**options
\lib\site-packages\celery\app\base.py in send_task
amqp.send_task_message(P, name, message, **options)
\lib\contextlib.py in __exit__
self.gen.throw(type, value, traceback)
\lib\site-packages\kombu\connection.py in _reraise_as_library_errors
sys.exc_info()[2])
\lib\site-packages\vine\five.py in reraise
raise …Run Code Online (Sandbox Code Playgroud) 我有一个字符串数组:
data = ['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)
我想获得:
s.a, s.b, s.c, s.d
Run Code Online (Sandbox Code Playgroud)
我试过了:
"s., ".join(fields)
Run Code Online (Sandbox Code Playgroud)
不起作用,因为我需要s.在前面和,最后
我想使用http auth,但也使用gunicorn的反向代理.
对于http auth,我使用:
location = admin.html {
auth_basic 'Login Required'
auth_basic__use_file etc/nginx/.htpasswd;
}
Run Code Online (Sandbox Code Playgroud)
对于gunicorn,代理反向我发现:
try_files $uri @gunicorn;
Run Code Online (Sandbox Code Playgroud)
我如何将两者结合起来?
我有以下配置文件和位置:
etc/ngnix/nginix.conf
var/etc/nginx/sites-available/myproject
etc/ngnix/conf.d/default.conf
etc/ngnix/conf.d/web.conf
Run Code Online (Sandbox Code Playgroud)
我对每个 conf 文件角色、规则、何时使用一个或另一个感到困惑,它们是一个接一个加载还是一个一个加载,指令是否覆盖?
我有 2 个型号:
class A(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return "%s the place" % self.name
class B(models.Model):
a = models.OneToOneField(Place,on_delete=models.CASCADE)
name = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)
我想:
我有两个模型,产品和类别以及产品中的多对多字段。类别在 ProductCreate 视图中显示为键。
我需要为类别自定义小部件和字段。
我检查了 Django 源字段和小部件,但没有看到 ManyToMany 的引用(类)。
什么类型的 Field 和 Widget ManyToMany 关系对应(我假设是 Charfield 作为 save 还是 SelectField)?我在哪里可以找到代码?(在这种情况下自定义字段/小部件的示例)
我有 2 个部分,一个用于普通用户,一个用于管理员(与 Django 管理员无关)。例如,我有一个产品模型。
在模型中,我使用 get_absolute_url 为普通用户设置详细 url。
产品创建位于管理部分,success_url 需要转到新创建的产品详细信息视图。
我需要获取新的 pk 并使用 get_success_url。
def get_success_url(self):
return reverse_lazy('accounts:detail_company', kwargs={'pk': self.pk})
Run Code Online (Sandbox Code Playgroud)
会给我以下错误:
'AccountCompanyCreateView' object has no attribute 'pk'
Run Code Online (Sandbox Code Playgroud) 我有两个模型 Company 和 Actions:
from companies.models import Company
class Action(models.Model):
company = models.ForeignKey(Company, blank=True, null=True, related_name='activity', on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)
然后我在 utils.py 中有一个实用程序
from .models import Action
def create_action(user, verb, target_name=None, target=None):
action = Action(user=user, verb=verb, target=target)
Run Code Online (Sandbox Code Playgroud)
我在公司模型中调用了这个实用程序def save,所以我有公司模型:
from not.utils import create_action
Run Code Online (Sandbox Code Playgroud)
所以 Action Model 将 Company Model 导入为 FK,utils 导入 Action Model,Company Model 导入 utils
现在,由于循环导入,Django 给出了一个错误:
ImportError: cannot import name 'Company'
Run Code Online (Sandbox Code Playgroud)
我在这里看到了一些 q/a 直接使用导入(没有来自)我试过但没有奏效
import not.utils as nt
nt.create_action(...)
Run Code Online (Sandbox Code Playgroud) 使用 Vue3 组合 API。我如何让手表立即工作。以下代码不起作用。
watch((immediate=true) => props.isOpen, () => {
if (props.isOpen && props.preventBackgroundScrolling) {
document.body.style.setProperty('overflow', 'hidden')
} else {
document.body.style.removeProperty('overflow')
}
});
Run Code Online (Sandbox Code Playgroud) 我想在 foreach 循环中创建对象:
我从这个开始:
data.forEach(function (el) {
var dynamic_var = new Quill(el['editor']);
dynamic_var.on('text-change', logHtmlContent);})
Run Code Online (Sandbox Code Playgroud)
但是,dynamic_var 被“覆盖”了,我想保持独特。
我检查了一些 html 元素,对于我发现的每个元素,我想创建一个新对象,并执行对象方法。
在我的情况下,变量每次迭代都会得到一个新对象,不是新变量。
django ×5
python ×3
nginx ×2
python-3.x ×2
celery ×1
django-forms ×1
django-views ×1
gunicorn ×1
javascript ×1
string ×1
vue.js ×1
vuejs3 ×1