我有一个这样的表格:
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¶ms=foo¶ms=bar¶ms=something&submit=Query
Run Code Online (Sandbox Code Playgroud)
我的params
变量显然被最后的选择覆盖了吗?如何将提交的数据作为单独的变量进行访问?
任何帮助赞赏.
我终于开始在我的开发机器上为我的Django项目使用virtualenv了.在开始之前,我想知道处理现有项目是否有任何特殊注意事项.我推测的工作流程如下:
编辑 6.制作需求文件以进行部署
这显然非常简化,但是我有什么步骤或考虑从根本上缺失?移动会让git感到高兴吗?对于每个Django项目,还有一个单独的virtualenv最佳实践吗?
我知道这不是一个典型的代码问题,但我希望那些比我更了解的人可以指出我正确的方向.
非常感谢.
我有一个包含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.当然我可以将值转换为字符串 - 但我猜这不是一个好的解决方案.
任何帮助非常感谢.
我有一个小的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
在模板中迭代我?
任何帮助非常感谢.
我有一个令人生气的问题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) 我正在使用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我知道这是一个不切实际的测试,但我只想演示我当前的问题.
作为Django中关键字云功能的一部分,我试图输出一个字符串列表.是否有模板过滤器,允许您在列表中随机播放项目?我认为这很简单,但我在官方文档中找不到任何适用的过滤器.
在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
.我怎样才能最好的替代None
用null
的,我应该在哪里处理这一点-在Django的视图或在JavaScript?
这可能更像是一种"方法"或概念性问题.
基本上,我有一个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的最佳方法的反馈,而不是寻找我的问题的具体答案.
任何帮助非常感谢.
我有一种情况,我有一个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)
我的问题是,在不造成范围冲突的情况下,我尝试做什么的最佳解决方案是什么?