我想使用Google表格来方便全球访问,但我确实需要以Lakh和Crore(印度风格)格式显示数字,以避免管理者之间的混淆.
150,000
应显示为,1,50,000
并12,000,000
应显示为1,20,00,000
.
我尝试将格式设置为##,##,##,000
但我的号码仍显示为12,000,000
.我在文档中找不到任何内容.
有谁知道这样做的方法?
有人能帮我理解update_field
Django信号的论点吗?
根据文件:
update_fields:要在save()方法中明确指定的要更新的字段集.如果在save()调用中未使用此参数,则为none.
我不清楚这意味着什么.我试图使用它来阻止信号功能执行,除非某些字段被更新:
@receiver(post_save, sender=SalesRecord)
def spawn_SaleSource_record(sender, update_fields, created, instance, **kwargs):
if created or update_fields is 'sale_item' or 'sales_qty':
*do function*
Run Code Online (Sandbox Code Playgroud)
但是,即使明确更新了未指定的字段,它似乎仍会在保存对象时在另一个信号进程中执行:
x = SalesRecord.objects.filter(paid_off=False, customer=instance.customer).first()
x.paid_off = True
x.save(update_fields=['paid_off'])
Run Code Online (Sandbox Code Playgroud)
我错了吗?
我正在使用Django的聚合查询表达式来总计一些值.最终值是一个除法表达式,有时可以将零作为分母.如果是这种情况,我需要一种方法来逃避,因此它只返回0.
我尝试了以下内容,因为我一直在使用类似我的注释表达式:
from django.db.models import Sum, F, FloatField, Case, When
def for_period(self, start_date, end_date):
return self.model.objects.filter(
date__range=(start_date, end_date)
).aggregate(
sales=Sum(F("value")),
purchase_cogs=Sum(F('purchase_cogs')),
direct_cogs=Sum(F("direct_cogs")),
profit=Sum(F('profit'))
).aggregate(
margin=Case(
When(sales=0, then=0),
default=(Sum(F('profit')) / Sum(F('value')))*100
)
)
Run Code Online (Sandbox Code Playgroud)
但是,它显然不起作用,因为错误说:
'dict'对象没有属性'aggregate'
处理这个问题的正确方法是什么?
我在单元测试中遇到了数据库问题.我认为这与我使用TestCase和setUpData的方式有关.
当我尝试使用某些值设置我的测试数据时,测试会抛出以下错误:
django.db.utils.IntegrityError: duplicate key value violates unique constraint
...
psycopg2.IntegrityError: duplicate key value violates unique constraint "InventoryLogs_productgroup_product_name_48ec6f8d_uniq"
DETAIL: Key (product_name)=(Almonds) already exists.
Run Code Online (Sandbox Code Playgroud)
我改变了所有的主键,似乎运行正常.它似乎不会影响任何测试.
但是,我担心我做错了什么.当它第一次发生时,我在我的应用程序上反转了大约一个小时的工作量(没有那么多的菜鸟代码),这纠正了问题.
然后,当我重新写入更改时,同样的问题又出现了.TestCase粘贴在下面.我添加sortrecord项后似乎发生了这个问题,但与上面的项相对应.
我不想在我的测试中继续浏览和更改主键和URL,所以如果有人发现我使用它的方式有问题,请帮助我.谢谢!
测试用例
class DetailsPageTest(TestCase):
@classmethod
def setUpTestData(cls):
cls.product1 = ProductGroup.objects.create(
product_name="Almonds"
)
cls.variety1 = Variety.objects.create(
product_group = cls.product1,
variety_name = "non pareil",
husked = False,
finished = False,
)
cls.supplier1 = Supplier.objects.create(
company_name = "Acme",
company_location = "Acme Acres",
contact_info = "Call me!"
)
cls.shipment1 = Purchase.objects.create(
tag=9,
shipment_id=9999,
supplier_id = cls.supplier1,
purchase_date='2015-01-09',
purchase_price=9.99, …
Run Code Online (Sandbox Code Playgroud) 我之前已经做了十几次,但这次有些事情没有用.
关注文档:
https://docs.djangoproject.com/en/1.11/ref/contrib/gis/install/#windows
我正在尝试在Windows机器上设置GeoDjango(这是在paperspace.com上设置的虚拟Windows 10).我的PATH设置似乎有问题,但我无法弄清楚它是什么.我运行了说明中突出显示的命令.我检查了我的PATH变量,一切似乎都没问题.我已经尝试将它们指向32位和64位版本的OSGeo4Win.无论如何,我每次都得到以下输出:
C:\Python\lib\site-packages\floppyforms\__init__.py:21: UserWarning: Unable to import floppyforms.gis, geometry widgets not available
"Unable to import floppyforms.gis, geometry widgets not available")
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Python\lib\site-packages\django\core\management\__init__.py", line 363, in execute_from_command_line
utility.execute()
File "C:\Python\lib\site-packages\django\core\management\__init__.py", line 337, in execute
django.setup()
File "C:\Python\lib\site-packages\django\__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Python\lib\site-packages\django\apps\registry.py", line 108, in populate
app_config.import_models()
File "C:\Python\lib\site-packages\django\apps\config.py", line 202, in import_models
self.models_module = import_module(models_module_name)
File "C:\Python\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], …
Run Code Online (Sandbox Code Playgroud) 根据有关测试的Django文档,该--keepdb
标志将保留测试数据库以供将来运行.
https://docs.djangoproject.com/en/1.8/ref/django-admin/#django-admin-option---keepdb
为了清楚起见,测试(即:)的数据库是否object.save()
会自动重置?或者这些变化是否需要在测试中反过来?
我以root身份启动主管:
sudo supervisord -c /etc/supervisor/supervisord.conf
然后我尝试启动supervisorctl:
(myapp)appuser@ip-172-31-21-65:~/appuser$ supervisorctl -c /etc/supervisor/supervisord.conf
Run Code Online (Sandbox Code Playgroud)
主管从以下消息开始:
error: <class 'socket.error'>, [Errno 13] Permission denied: file: /usr/lib/python2.7/socket.py line: 224
Run Code Online (Sandbox Code Playgroud)
尝试以root身份运行第二个命令也不成功.我的理解是这是设计的.
我发现的所有建议都表明我应该将我的用户设置为执行命令的用户,但这已经是我所有配置的方式:
这是我正在使用的脚本文件:
NAME="myapp"
DJANGODIR=/home/appuser/myapp
SOCKFILE=/home/appuser/myapp/gunicorn.sock
USER=appuser
GROUP=webdata
NUM_WORKERS=1
DJANGO_SETTINGS_MODULE=myapp.settings
DJANGO_WSGI_MODULE=myapp.wsgi
Run Code Online (Sandbox Code Playgroud)
我不确定是什么搞砸了?我认为这可能是GROUP
设定,因为我不承认这个价值.但如果我发表评论,它似乎没有什么区别.我应该如何解决这个问题?
编辑:我创建了一个名为的组supervisor
,添加appuser
到它并更改GROUP
设置以匹配,但仍然没有快乐.
这是我的supervisord.conf:
; supervisor config file
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod=0700 ; sockef file mode (default 0700)
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/super$
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor ; ('AUTO' child …
Run Code Online (Sandbox Code Playgroud) 我正在使用Django,我有一个已转换为list(unpaid_sales
)的对象的查询集.我正在执行一个循环遍历此列表并对每个项目进行操作的进程,直到列表为空或给定的整数(bucket
)达到零.
我就是这样设置的:
while unpaid_sales:
while bucket > 0:
unpaid_sale = unpaid_sales.pop(0)
...do stuff
Run Code Online (Sandbox Code Playgroud)
在某些情况下,我收到以下错误:
从空列表中弹出
我的逻辑出了什么问题?
我想做一个循环,在循环内获取上一个和下一个项目.
目前,我使用以下循环:
for file in $dir;do
[...do some things...]
done
Run Code Online (Sandbox Code Playgroud)
我可以在C中做一些事情,例如,文件[i-1]/file [i + 1]来获取上一个和下一个项目吗?有没有简单的方法来做到这一点?
我试图配置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,并根据文档设置了所有相关配置.我可以发布我的配置,如果它与此有任何关系.
我该如何解决这个问题?
django ×7
python ×5
gunicorn ×2
bash ×1
django-tests ×1
gdal ×1
geodjango ×1
loops ×1
postgresql ×1
sockets ×1
supervisord ×1
unix ×1
windows ×1