小编Dar*_*ech的帖子

Django Forms - 从多个选择字段中获取数据

我有一个这样的表格:

class MyForm(forms.Form):
    site = forms.ChoiceField(choices=SITE_CHOICES, label=ugettext_lazy('Site'),)  
    ...
    params = forms.MultipleChoiceField(
             choices=PARAM_CHOICES,
             label=ugettext_lazy('Select Parameters'),
             widget=forms.CheckboxSelectMultiple()
             )
Run Code Online (Sandbox Code Playgroud)

在我的模板中:

<form action="{% url results %}" method="get">{% csrf_token %}
{% for field in myform %}
<div class="field_wrapper">
    {{ field.errors }}
    {{ field.label_tag }} {{ field }}
</div>
{% endfor %}
<input type="submit" name="submit" value="{% trans 'Query' %}"  />
</form>
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我将表单作为GET提交时,变量如下所示:

    site=1&params=foo&params=bar&params=something&submit=Query
Run Code Online (Sandbox Code Playgroud)

我的params变量显然被最后的选择覆盖了吗?如何将提交的数据作为单独的变量进行访问?

任何帮助赞赏.

forms django get

8
推荐指数
1
解决办法
8485
查看次数

将virtualenv与遗留的Django项目结合使用

我终于开始在我的开发机器上为我的Django项目使用virtualenv了.在开始之前,我想知道处理现有项目是否有任何特殊注意事项.我推测的工作流程如下:

  1. 做一个新的virtualenv
  2. 激活新的virtualenv
  3. 在那里安装Django
  4. pip安装我知道我现有项目所需的所有软件包
  5. 将我的Django项目文件,应用程序文件和git文件复制到virtualenv中的项目文件夹中.

编辑 6.制作需求文件以进行部署

这显然非常简化,但是我有什么步骤或考虑从根本上缺失?移动会让git感到高兴吗?对于每个Django项目,还有一个单独的virtualenv最佳实践吗?

我知道这不是一个典型的代码问题,但我希望那些比我更了解的人可以指出我正确的方向.

非常感谢.

django pip virtualenv

8
推荐指数
1
解决办法
1628
查看次数

Django如何将Decimal对象传递给json

我有一个包含Decimal对象的查询集.我想将这些数据传递给json转储行:

ql = Product.objects.values_list('length', 'width').get(id=product_id)
data = simplejson.dumps(ql)

TypeError: Decimal('62.20') is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

我应该如何将这些值传递给json.当然我可以将值转换为字符串 - 但我猜这不是一个好的解决方案.

任何帮助非常感谢.

django json

8
推荐指数
1
解决办法
6405
查看次数

烧瓶mongoengine分页

我有一个小的Flask应用程序,它呈现博客文章:

views.py:

class ListView(MethodView):

    def get(self, page=1):
        posts = Post.objects.all()
        return render_template('posts/list.html', posts=posts)
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但我想为posts对象添加分页.看一下项目文档,我看到有一个分页类.

所以我尝试了这个:

class ListView(MethodView):

    def get(self, page=1):
        posts = Post.objects.paginate(page=page, per_page=10)
        return render_template('posts/list.html', posts=posts)
Run Code Online (Sandbox Code Playgroud)

但现在我收到一个错误:

TypeError: 'Pagination' object is not iterable
Run Code Online (Sandbox Code Playgroud)

那么如何posts在模板中迭代我?

任何帮助非常感谢.

python mongodb mongoengine flask

8
推荐指数
1
解决办法
5170
查看次数

Angular UI-Router将根URL发送到404

我有一个令人生气的问题ui-router.一切都按照我的意愿运行,所有错误的URL都发送到404州.但是,即使我的默认状态在url是正确呈现时/#/,/也会重定向到url /404/.哪能服务器的default状态,既//#/

app.js

MyApp.config( function ($stateProvider, $urlRouterProvider) {

// For any unmatched url, send to 404
$urlRouterProvider.otherwise("/404/");

$stateProvider
    // Home  (default)
    .state('default', {
        url: '/',
        resolve: {
            ...
        },
   }
});
Run Code Online (Sandbox Code Playgroud)

angularjs angular-ui-router

8
推荐指数
1
解决办法
8079
查看次数

使用Jasmine进行角度测试无法比较html节点

我正在使用Jasmine在Angular中构建指令测试.我有一个小例子测试,看起来像这样:

it("should compare html node", inject( function ($compile, $rootScope) {
  var elm = angular.element('<input>');
  elm = $compile(elm)($scope);
  $scope.$digest();
  console.log('btn', elm); // output: '<input class="ng-scope">'
  expect(elm).toBe('<input class="ng-scope">');

  expect(elm[0]).toBe('<input class="ng-scope">'); // these also fail
  expect(elm.html()).toBe('<input class="ng-scope">'); // ""
}));
Run Code Online (Sandbox Code Playgroud)

所以我得到了预期的输出到控制台,但Jasmine抱怨错误 Expected { length: 1, 0: HTMLNode } to be '<input class="ng-scope">'

我也试过使用elm[0]哪个给出了相同的错误,elm.html()但只返回一个空字符串.如何正确地将HTML节点与字符串进行比较?

NB我知道这是一个不切实际的测试,但我只想演示我当前的问题.

jasmine angularjs angularjs-directive

8
推荐指数
1
解决办法
6332
查看次数

django shuffle in templates

作为Django中关键字云功能的一部分,我试图输出一个字符串列表.是否有模板过滤器,允许您在列表中随机播放项目?我认为这很简单,但我在官方文档中找不到任何适用的过滤器.

django templates shuffle

7
推荐指数
1
解决办法
3752
查看次数

将Python None转换为JavaScript null

在Django视图中,我生成的数据集如下:

data = [22, 23, 18, 19, 21, None, 22, 20]
Run Code Online (Sandbox Code Playgroud)

我使用以下方法将此数据传递给JavaScript变量:

data_json = simplejson.dumps(data)
Run Code Online (Sandbox Code Playgroud)

用于High Charts脚本.

不幸的是,JavaScript遇到这个None价值时遇到了磕磕绊绊,因为实际上我需要的是它null.我怎样才能最好的替代Nonenull的,我应该在哪里处理这一点-在Django的视图或在JavaScript?

javascript python django

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

Python - 将list的元素与'neighbor'元素进行比较

这可能更像是一种"方法"或概念性问题.

基本上,我有一个python多维列表,如下所示:

my_list = [[0,1,1,1,0,1], [1,1,1,0,0,1], [1,1,0,0,0,1], [1,1,1,1,1,1]]
Run Code Online (Sandbox Code Playgroud)

我要做的是遍历数组并将每个元素与直接围绕它的元素进行比较,就好像列表被放置为矩阵一样.

例如,考虑到第一排的第一个元素,my_list[0][0]我需要了解知道的价值my_list[0][1],my_list[1][0]my_list[1][1]."周围"元素的值将决定当前元素应如何操作.当然,对于阵列核心元素,需要进行8次比较.

现在我知道我可以简单地遍历数组并与索引值进行比较,如上所述.我很好奇是否有更有效的方法来限制所需的迭代量?我应该按原样迭代数组,还是只迭代和比较任何一方的值,然后转置数组并再次运行它.然而,这会忽略对角线的那些值.我应该存储元素查找的结果,所以我不会多次确定同一元素的值吗?

我怀疑这可能在计算机科学中有一个基本的方法,我渴望得到关于使用Python的最佳方法的反馈,而不是寻找我的问题的具体答案.

任何帮助非常感谢.

python arrays list

7
推荐指数
1
解决办法
4182
查看次数

Angular ng-include控制器位于另一个控制器内

我有一种情况,我有一个Angular控制器,它基本上只是加载HTML模板取决于点击事件.但是,这些模板由自己的控制器管理.这导致控制器位于原始控制器内部,这似乎是错误的:

<div ng-controller="WindowCtrl" id="focus-window">

    <button ng-click="openProjects()">Show Projects</button>
    <button ng-click="openTasks()">Show Tasks</button>
    <div ng-include src="template.url"></div>

</div>
Run Code Online (Sandbox Code Playgroud)

controllers.js

.controller('WindowCtrl', function ($scope) {
    $scope.templates = [
        {
        name: 'tasks',
        url: 'partials/_tasks.html'},
    {
        name: 'projects',
        url: 'partials/_projects.html'}
    ];
    $scope.template = $scope.templates[0];

    $scope.openProjects = function() {
        $scope.template = $scope.templates[1];
    };
    $scope.openTasks = function() {
        $scope.template = $scope.templates[0];
    };
});
Run Code Online (Sandbox Code Playgroud)

_projects.html

<div ng-controller="ProjectsCtrl">
  <h2>My Projects</h2>
  ...            
</div>
Run Code Online (Sandbox Code Playgroud)

_tasks.html

<div ng-controller="TasksCtrl">
  <h2>My Tasks</h2>
  ...            
</div>
Run Code Online (Sandbox Code Playgroud)

我的问题是,在不造成范围冲突的情况下,我尝试做什么的最佳解决方案是什么?

angularjs angularjs-scope

7
推荐指数
1
解决办法
8881
查看次数