我想从AJAX响应中下载以字节形式出现的文件.
我试图通过以下方式这样做Bolb:
var blob=new Blob([resultByte], {type: "application/pdf"});
var link=document.createElement('a');
link.href=window.URL.createObjectURL(blob);
link.download="myFileName.pdf";
link.click();
Run Code Online (Sandbox Code Playgroud)
它实际上是下载pdf文件但文件本身已损坏.
我怎么能做到这一点?
问题是这样的:我正在尝试替换标准的查询集:
queryset: MyModel.objects.all()
Run Code Online (Sandbox Code Playgroud)
在我身上:
def get_queryset(self, username=None):
if username is not None:
user = UserModel.objects.get(username=username)
queryset = MyModel.filter(author=user)
return queryset
else:
queryset = MyModel.objects.all()
return queryset
Run Code Online (Sandbox Code Playgroud)
当我删除"queryset",并只留下"get_queryset"时,会出现一个错误:
AssertionError:
base_name未指定参数,并且无法自动确定视图集中的名称,因为它没有.queryset属性.
一共看起来如此:
class MyModelView(viewsets.ModelViewSet):
permissions_classes = (permissions.IsAuthenticated,)
serializer_class = MyModelleSerializer
def get_queryset(self, username=None):
if username is not None:
user = UserModel.objects.get(username=username)
queryset = MyModel.filter(author=user)
return queryset
else:
queryset = MyModel.objects.all()
return queryset
lookup_field = 'username'
lookup_value_regex = '[a-zA-Z0-9$&(._)\-]+'
Run Code Online (Sandbox Code Playgroud)
那么如何正确覆盖方法?
表中有这个字段:
room_id INT NOT NULL CONSTRAINT room_id_ref_room REFERENCES room
Run Code Online (Sandbox Code Playgroud)
我有两个房间的三张桌子:standard_room和family_room
怎么做这样的事情:
room_id INT NOT NULL CONSTRAINT room_id_ref_room REFERENCES standard_room or family_room
Run Code Online (Sandbox Code Playgroud)
我的意思是,room_id应该引用任何 standard_room 或 family_room.
有可能这样做吗?
postgresql polymorphism database-design referential-integrity foreign-keys
在我的Django应用程序中,我从作为字符串提供的web服务中获取时间,我在模板中使用:
{{date.string}}
Run Code Online (Sandbox Code Playgroud)
这为我提供了一个日期,例如:
2009-06-11 17:02:09+0000
Run Code Online (Sandbox Code Playgroud)
这些显然有点难看,我想以一种很好的格式向我的用户展示它们.Django有一个很棒的内置日期格式化程序,可以完全按照我想要的方式执行:
{{ value|date:"D d M Y" }}
Run Code Online (Sandbox Code Playgroud)
但是,这要求将值作为日期对象提供,而不是字符串.所以我不能用它来格式化它.在这里搜索StackOverflow pythons strptime似乎做我想要的,但对Python来说相当新我想知道是否有人能想出一个更简单的方法来使用字符串获取日期格式,而不必诉诸于编写一个全新的自定义strptime模板标签?
Simple way of opening modal with ngDialog is this:
ngDialog.open({
template: 'template.html',
controller: 'someCtrl'
})
Run Code Online (Sandbox Code Playgroud)
How can I send variables to that 'someCtrl'?
Is there such thing as 'resolve' in ngDialog?
Example from angular-bootstrap modal:
$modal.open({
template: "<p>This is template</p>",
controller: "someCtrl",
resolve: {
someVar: function(){
return "Value of someVar"
}
}
})
Run Code Online (Sandbox Code Playgroud)
this would open the modal send the 'someVar' to the responsible Controller.
UPDATE:
It seems like new version of ngDialog added this feature:
ngDialog.open({
controller: function Ctrl(dep) …Run Code Online (Sandbox Code Playgroud) 我有这样的正则表达式:
'(?:\$|???)(\040)?(\d+)|(\d+)(\040)?(?:\$|???)'
Run Code Online (Sandbox Code Playgroud)
它匹配以下字符串:
$23
23$
1000???
???1000
??? 1000
1000 ???
Run Code Online (Sandbox Code Playgroud)
我想将此正则表达式中的位数限制为8.
试过这个:
'(?:\$|???)(\040)?(\d{, 8})|(\d{, 8})(\040)?(?:\$|???)'
Run Code Online (Sandbox Code Playgroud)
它停止匹配任何东西.
我究竟做错了什么?
我试图将celerybeat作为Elastic beanstalk中的守护进程运行.这是我的配置文件:
files:
"/opt/python/log/django.log":
mode: "000666"
owner: ec2-user
group: ec2-user
content: |
# Log file
encoding: plain
"/opt/elasticbeanstalk/hooks/appdeploy/post/run_supervised_celeryd.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
# Get django environment variables
celeryenv=`cat /opt/python/current/env | tr '\n' ',' | sed 's/%/%%/g' | sed 's/export //g' | sed 's/$PATH/%(ENV_PATH)s/g' | sed 's/$PYTHONPATH//g' | sed 's/$LD_LIBRARY_PATH//g'`
celeryenv=${celeryenv%?}
# Create celery configuraiton script
celeryconf="[program:celeryd]
; Set full path to celery program if using virtualenv
command=/opt/python/run/venv/bin/celery worker -A avtotest --loglevel=INFO
directory=/opt/python/current/app
user=nobody
numprocs=1 …Run Code Online (Sandbox Code Playgroud) 我在我的项目中有这个代码,它为一个不合理的用户分配一个唯一的id并将其保存在一个会话中:
user_id = str(uuid.uuid4())[:5]
request.session['nonuserid'] = user_id
Run Code Online (Sandbox Code Playgroud)
文档说会话存储在我的数据库中.我以为它会把它保存在django_session表格中.但是,每次在会话中创建并保存唯一(上面的代码)时,不会向该表添加任何行.
然后我检查了饼干Resources.没有名字的钥匙nonusedid.一些sessionid
那么,它在哪里存储我创建的会话数据?
Settings.py的相关部分
MIDDLEWARE_CLASSES = (
# Default Django middleware.
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
DJANGO_APPS = (
# Default Django apps:
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
Run Code Online (Sandbox Code Playgroud) 我有这个要求:
$http({
method: 'get',
url: '/api/items/',
params: {a: 1, b: 2, c: 3}
}).success(function (response) {
console.log(response);
}).error(function (err) {
console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
有没有办法,在请求发出后(在回调或其他情况下)获取用于发出请求的URL?
我想要输出:
http://www.example.org/api/items?a=1&b=2&c=3
Run Code Online (Sandbox Code Playgroud)
这里用jquery做同样的事情.
我现在在Heroku中遇到一个非常奇怪的问题。
我可以自由浏览网站。但是某些操作给我以下错误:
sock=client at=warning code=H27 desc="Client Request Interrupted" method=POST path="/api/upload/image/"
Run Code Online (Sandbox Code Playgroud)
基于这些,我猜 GET操作可以正常工作(例如浏览页面),但是POST操作却不行(例如上传图像)
PS我正在使用Django
所以我以为这是我最新的 commit做法。但是,即使我恢复到昨天的状态(工作时),它也会产生相同的结果。
这是Heroku内部的问题,我应该等待吗?还是我做错了什么?
python ×5
django ×4
angularjs ×2
javascript ×2
request ×2
celery ×1
celerybeat ×1
date ×1
django-views ×1
foreign-keys ×1
heroku ×1
ng-dialog ×1
polymorphism ×1
post ×1
postgresql ×1
python-3.x ×1
regex ×1
response ×1
session ×1
strptime ×1
time ×1