小编Jah*_*nov的帖子

从JavaScript中的字节下载文件

我想从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文件但文件本身已损坏.

我怎么能做到这一点?

javascript post response request

41
推荐指数
2
解决办法
6万
查看次数

base_name参数未指定,并且无法自动确定视图集中的名称,因为它没有.queryset属性

问题是这样的:我正在尝试替换标准的查询集:

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)

那么如何正确覆盖方法?

django-views python-3.x django-rest-framework

16
推荐指数
2
解决办法
9559
查看次数

FOREIGN KEY约束的"多态"

表中有这个字段:

room_id INT NOT NULL CONSTRAINT room_id_ref_room REFERENCES room
Run Code Online (Sandbox Code Playgroud)

我有两个房间的三张桌子:standard_roomfamily_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

12
推荐指数
1
解决办法
3952
查看次数

格式化在Django中作为字符串提供的日期时间

在我的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模板标签?

python django time date strptime

9
推荐指数
1
解决办法
2万
查看次数

send variables to controller('resolve') in ngDialog

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)

angularjs ng-dialog

9
推荐指数
1
解决办法
1万
查看次数

限制正则​​表达式中的位数

我有这样的正则表达式:

'(?:\$|???)(\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)

它停止匹配任何东西.

我究竟做错了什么?

python regex

7
推荐指数
3
解决办法
5983
查看次数

在Elastic Beanstalk(AWS)中使用Ceebee Beetbeat

我试图将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)

python django amazon-web-services celery celerybeat

6
推荐指数
1
解决办法
1351
查看次数

Django在哪里存储会话?

我在我的项目中有这个代码,它为一个不合理的用户分配一个唯一的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)

python django session

6
推荐指数
1
解决办法
2800
查看次数

如何在angularjs $ http请求中获取请求URL

我有这个要求:

$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做同样的事情.

javascript request angularjs

5
推荐指数
1
解决办法
2万
查看次数

客户请求在Heroku中被中断

我现在在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 django heroku

5
推荐指数
1
解决办法
2568
查看次数