我试图配置Gunicorn使用Unix套接字,但我找不到任何关于如何创建这些套接字或如何解决它们的文档.
我正在设置一个Django应用程序,我可以通过指定端口成功启动到http.但是,当我尝试使用Unix套接字时:
gunicorn myapp.wsgi:application --bind=unix:/appuser/myapp/gunicorn.sock
Run Code Online (Sandbox Code Playgroud)
它返回:
[2015-11-21 09:34:21 +0000] [24380] [INFO] Starting gunicorn 19.3.0
[2015-11-21 09:34:21 +0000] [24380] [ERROR] Retrying in 1 second.
[2015-11-21 09:34:22 +0000] [24380] [ERROR] Retrying in 1 second.
[2015-11-21 09:34:23 +0000] [24380] [ERROR] Retrying in 1 second.
[2015-11-21 09:34:24 +0000] [24380] [ERROR] Retrying in 1 second.
[2015-11-21 09:34:25 +0000] [24380] [ERROR] Retrying in 1 second.
[2015-11-21 09:34:26 +0000] [24380] [ERROR] Can't connect to /appuser/myapp/gunicorn.sock
Run Code Online (Sandbox Code Playgroud)
gunicorn.sock位于它应该的位置,但文件是空的.我找不到任何日志或任何东西.我在AWS服务器上使用Nginx,并根据文档设置了所有相关配置.我可以发布我的配置,如果它与此有任何关系.
我该如何解决这个问题?
我有以下在 SalesRecord 上运行的模型管理器:
def by_variety_and_date(self, start_date, end_date):
return self.model.objects.filter(
date__range=(start_date, end_date)
).values(
"variety"
).annotate(
qty_applied=Sum('qty_applied'),
margin=Avg('margin')
)
Run Code Online (Sandbox Code Playgroud)
我真正想要的是margin=Avg('margin')返回基于 的加权qty_applied平均值。有没有办法用 Django 的注释/聚合查询来做到这一点?我一直在尝试将 .aggregate() 字符串化到最后,但我仍然想要variety此查询集所描述的平均值。
本例中的模型如下所示:
class Sale(models.Model):
margin = models.DecimalField(null=True, blank=True, decimal_places=2, max_digits=12)
qty_applied = models.IntegerField(null=True, blank=True)
variety = models.ForeignKey(Variety, null=True)
totals = Totals()
Run Code Online (Sandbox Code Playgroud)
编辑
这就是我最终得到的结果。这有点奇怪,但它确实有效。
def by_variety_and_date(self, start_date, end_date):
return self.model.objects.filter(
date__range=(start_date, end_date)
).values(
"variety"
).annotate(
qty_applied=Sum('qty_applied'),
profit=Sum('profit'),
cogs=Sum('cogs'),
sales=Sum('value'),
margin=Sum(
(F('qty_applied')*F('margin')), output_field=FloatField()
) / Sum(
'qty_applied', output_field=FloatField())
)
Run Code Online (Sandbox Code Playgroud)
我按照@WTower建议使用 F 对象,将每个对象的 …
假设我有一个对象:
survey = Survey.objects.all().first()
Run Code Online (Sandbox Code Playgroud)
我想在它和一组对象之间创建关系:
respondents = Respondent.objects.all()
for r in respondents:
r.eligible_for.add(survey)
Run Code Online (Sandbox Code Playgroud)
其中eligible_for是模型中的 M2M 字段Respondent。
有没有办法一次性完成它,或者我是否需要循环查询集?
模型.py
class Questionnaire(models.Model):
label = models.CharField(max_length=48)
organization = models.ForeignKey('Home.Organization', on_delete=models.PROTECT, null=True)
class Respondent(models.Model):
user = models.OneToOneField('Home.ListenUser', on_delete=models.CASCADE)
organization = models.ForeignKey('Home.Organization', on_delete=models.PROTECT)
eligible_for = models.ManyToManyField('Questionnaire', related_name='eligible_users', blank=True)
Run Code Online (Sandbox Code Playgroud) 我是 Vue 的新手,正在尝试学习如何使用它。
我想我在尝试安装一个新的 Vue 应用程序时被绊倒了。
这是我可以开始工作的内容:
<script src="https://unpkg.com/vue"></script>
<script>
const vm = new Vue({})
</script>
Run Code Online (Sandbox Code Playgroud)
从那里我可以安装它并正确使用所有东西。
但是,这当前加载了旧版本的 Vue (2.6.7)
我想学习最新版本(Vue 3),所以我尝试导入Vue docs 推荐的包:
<script src="https://unpkg.com/vue@next"></script>
<script>
const vm = new Vue({})
</script>
Run Code Online (Sandbox Code Playgroud)
我在控制台中收到以下错误:
未捕获的类型错误:Vue 不是构造函数
我还尝试模仿Vue 3 文档中的语法。
<script src="https://unpkg.com/vue@next"></script>
<script>
const vm = new Vue.createApp({})
</script>
Run Code Online (Sandbox Code Playgroud)
但它抛出相同的错误:
未捕获的类型错误:Vue.createApp 不是构造函数
使用不同的 CDN 或特定版本 (vue@3.0.2) 也会给我相同的结果。
我究竟做错了什么?
我想为我的购买模型创建一个模型管理器:
class Purchase(models.Model)
number = models.IntegerField
class InventoryLog(models.Model)
purchase = models.ForeignKey(Purchase)
sold_out = models.BooleanField(default=false)
Run Code Online (Sandbox Code Playgroud)
我希望我的模型管理器返回与值为 的对象Purchase无关的任何对象InventoryLogsold_outTrue
有没有办法用查询集、Q 对象或 F 对象来处理这个问题,或者我需要诉诸 for 循环?
我真的很享受 Django 1.8 中 setUpTestData 和 --keepdb 的便利!
但是,我遇到了在多个测试文件中保持数据一致的问题。我想将我的 setUpTestData 类方法放在一个位置,并让我的每个测试文件都引用它,这样我就不必将更改复制/粘贴到每个单独的测试文件中。
我对如何解决这个问题有点困惑,特别是关于 classmethod 似乎阻止我从另一个文件导入我的 setUpTestData 函数。有人能帮我吗?先谢谢了!
当前测试文件
from django.test import TestCase
from models import SpecificModel
class TestData(TestCase):
@classmethod
def setUpTestData(cls):
cls.test_item = SpecificModel.objects.create(data="some data")
Run Code Online (Sandbox Code Playgroud)
设置数据文件
???
Run Code Online (Sandbox Code Playgroud) 前一段时间,我尝试在Django中使用“ collectstatic”来提供我的静态文件,但失败了。现在,我终于试图让我的静态文件在我的开发环境中正确运行。我不知道出了什么问题。
当我跑步 python manage.py findstatic images/add.png
控制台返回:
base path: C:\Projects\AlmondKing\AlmondKing
static files dirs: C:\Projects\AlmondKing\AlmondKing\static
No matching file found for 'images/add.png'.
Run Code Online (Sandbox Code Playgroud)
目录路径是正确的,但仍然找不到我的文件。我尝试了许多不同的设置配置,但均无济于事。谁能发现我的问题?我认为这是所有相关设置:
BASE_DIR = os.path.abspath(os.path.dirname(__file__))
DEBUG = True
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'AlmondKing.InventoryLogs',
'AlmondKing.FinancialLogs',
'AlmondKing.AKGenius',
)
STATIC_URL = '/static/'
STATIC_FILES_DIRS = (
os.path.join((BASE_DIR), "static")
)
print("base path:", BASE_DIR)
print("static files dirs:", STATIC_FILES_DIRS)
Run Code Online (Sandbox Code Playgroud)
编辑:我发现了,findstatic --verbosity 2 command并且正在搜索的唯一目录是:C:\Users\Adam\Envs\AlmondKing\lib\site-packages\django\contrib\admin\static
显然,它只是在我的虚拟环境中查找,而不是我的项目目录。这是正常的Django行为吗?
回溯讲述了这个故事:
Error
Traceback (most recent call last):
File "/Users/adamstarrh/almondking/AlmondKing/tests/test_models/test_financial_logs.py", line 35, in test_cogs_per_tag
self.assertEqual(self.sale5.cogs_per_tag, {10: 1813365, 3: 5623801, 4: 4140737})
File "/Users/adamstarrh/almondking/AlmondKing/FinancialLogs/models.py", line 244, in cogs_per_tag
cogs[tag[0]] = float(round(shipment.adjusted_cost * tag[1]))
File "/Users/adamstarrh/almondking/AlmondKing/InventoryLogs/models.py", line 509, in adjusted_cost
return self.cost_inr_per_kg
File "/Users/adamstarrh/almondking/AlmondKing/InventoryLogs/models.py", line 499, in cost_inr_per_kg
Decimal(self.reverse_exchange_rate), 4)
File "/Users/adamstarrh/almondking/AlmondKing/InventoryLogs/models.py", line 477, in reverse_exchange_rate
self.save(update_fields="rate_usd_inr")
File "/Users/adamstarrh/almondking/AlmondKing/lib/python3.5/site-packages/django/db/models/base.py", line 714, in save
% ', '.join(non_model_fields))
ValueError: The following fields do not exist in this model or are m2m fields: u, _, n, …Run Code Online (Sandbox Code Playgroud) 从文档中,它表明我们可以将类绑定到条件,如下所示:
<div
class="static"
:class="{ active: isActive, 'text-danger': hasError }"
></div>
Run Code Online (Sandbox Code Playgroud)
如果我想将两个类绑定到相同的条件,这可行吗?会有更短的路吗?
<div
class="static"
:class="{ active: isActive, active: isSelectable }"
></div>
Run Code Online (Sandbox Code Playgroud) 有了这个功能:
timestamp = datetime.strptime(date_str, date_fmt)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ValueError:时间数据'太阳,2018年10月28日07:33:13 -0400(EDT)'与格式'%a,%d%b%Y%H:%M:%S%z(%Z)'不匹配
Sun, 28 Oct 2018 07:33:13 -0400 (EDT)
%a, %d %b %Y %H:%M:%S %z (%Z)
Run Code Online (Sandbox Code Playgroud)
我已经看了十几次,我无法弄清楚我做错了什么.
我的Python版本:
Python 3.7.0 (default, Jul 23 2018, 20:24:19)
Run Code Online (Sandbox Code Playgroud) django ×7
python ×5
vue.js ×2
vuejs3 ×2
django-tests ×1
gunicorn ×1
sockets ×1
unix ×1
virtualenv ×1