小编wob*_*col的帖子

Python"来自[dot]包导入..."语法

通过Django教程,我看到了以下语法:

from .models import Recipe, Ingredient, Instruction
Run Code Online (Sandbox Code Playgroud)

有人可以解释.models的工作方式/它的作用是什么吗?通常我有:

from myapp.models import
Run Code Online (Sandbox Code Playgroud)

如果没有myapp部分在.models之前它如何工作?

python import

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

Python,括号前的下划线是做什么的

在身份验证表单中查看一些Django代码,我注意到以下语法

label=_("Username")
Run Code Online (Sandbox Code Playgroud)

通常我会在字符串周围使用一对引号.有人可以向我展示"用户名"周围的下划线和括号吗?

python syntax

32
推荐指数
3
解决办法
7147
查看次数

如何在Django 1.7中重置迁移

(我知道有一个与此相同的标题,但问题不同).

我设法使我的开发机器迁移和生产迁移不同步.

我有一个使用South的Django应用程序.我有自己的工作流程,工作正常(这可能不是正确的做事方式,但我没有遇到任何问题).

基本上我有一个脚本将生产数据库转储复制到我的开发机器.它还复制了迁移文件.这样两者是同步的,我可以照常运行南方命令.

现在我已升级到1.7,并开始使用迁移.当我使用以前的工作流程(复制数据库转储和生产中的迁移文件)时,它不会检测我的开发计算机上的更改.

我已经阅读了迁移文档,我发现使用它的正确方法是

  1. 在我的开发机器上运行"make migrations"和"migrate".
  2. 在我的devlopemnt机器上运行"migrate"以实际更改数据库
  3. 复制更改,包括迁移文件.
  4. 在生产机器上运行"迁移".(没有"makemigrations"步骤)

无论如何.现在一切都搞得一团糟.我想"重置"我的迁移并从头开始,从现在开始做正确的事情.

我需要做什么?

  1. 删除迁移表的内容(在两台机器上)?
  2. 删除迁移文件夹的内容?(包括init .py文件).
  3. 根据新文档开始迁移.

我错过了什么吗?是否有理由为什么从生产(数据库和迁移文件)复制所有内容后,我的开发机器上都没有检测到任何更改

migration django django-south django-migrations

30
推荐指数
5
解决办法
4万
查看次数

使用十进制数据类型是否有性能损失(MySQL/Postgres)

我理解整数和浮点数据类型是如何存储的,我猜测十进制数据类型的可变长度意味着它更像是一个字符串存储.

当使用十进制数据类型并搜索它们时,这是否意味着性能开销?

mysql database postgresql types type-conversion

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

Django检查查询集的模型类型的最佳方法

我有一个Django动作函数,我想在基于不同模型的查询集上使用它.

检查我的查询集组成的模型类型的最佳方法是什么?假设我想检查我的models.py中定义的Library类

目前我可以使用它

for object in queryset :
    if object.__class__.__name__  == "Library"
Run Code Online (Sandbox Code Playgroud)

但我相信有更好的方法可以做到这一点.

我假设我使用queryset.model做某事.我尝试了以下内容,但它没有按照我的要求做到:

import myapp.models.Library

def my function(modeladmin,request  queryset )

    if isinstance(queryset.model , Library ) :
        # do something specific here
Run Code Online (Sandbox Code Playgroud)

django action django-queryset

16
推荐指数
1
解决办法
6320
查看次数

Python/pip,如何从github安装特定版本的git存储库(什么是正确的URL)?

我想通过pip安装Django 1.7.它目前是一个开发版本,因此不在pips存储库中.

所以我在使用之前已经从github安装了包:

pip install git+[url here]
Run Code Online (Sandbox Code Playgroud)

现在看github,我在django页面上获得了克隆url:

https://github.com/django/django.git
Run Code Online (Sandbox Code Playgroud)

但是这没有提及分支.如何指定我想要1.7版本?它是否在github页面上显而易见?

python git django github

11
推荐指数
1
解决办法
4034
查看次数

你能不提供关键字参数而不提供默认值吗?

我习惯在Python中有这样的函数/方法定义:

def my_function(arg1=None , arg2='default'):
    ... do stuff here
Run Code Online (Sandbox Code Playgroud)

如果我不提供arg1(或arg2)则None分配默认值(或''default').

我可以像这样指定关键字参数,但没有默认值吗?如果没有提供参数,我希望它会引发错误.

python kwargs

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

Django 的 FormView 中的文件处理 - request.FILES 为空

我正在尝试在 Django 中实现一个 FormView,因为它似乎减少了一些样板代码。其中一个字段是文件上传字段。

class LibraryUploadLastStageForm(forms.Form):

    technician = forms.ModelChoiceField(label="prepeared by" , queryset=Technician.objects.exclude(has_left=True).order_by('name') , required=True)
    subprojects = forms.ModelChoiceField(label="Choose a subproject" , queryset=Subproject.objects.all().order_by('subproject_name') , required=True)
    lab_tracking_excel = forms.FileField(label="Choose the Lab Tracking Excel - protocol details associated with these libraries", required=False)
Run Code Online (Sandbox Code Playgroud)

在 views.py 中,

class LibraryUploadFinalView(FormView):

    template_name = 'sequencing/ChooseSomething.html' 
    form_class = LibraryUploadLastStageForm


    def form_valid(self, form):
        """
        Update the library technician, and create the librarysubproject links
        """

        id_list_str = self.request.GET.get('ids')
        ids = map(int , id_list_str.split(','))

        libraries = Library.objects.filter(id__in=ids)
        print libraries.count()

        cd = form.cleaned_data
        lib_kwargs …
Run Code Online (Sandbox Code Playgroud)

forms django formview file-upload

8
推荐指数
0
解决办法
3659
查看次数

如何使用$ resource填充Angular UI Bootstrap typeahead

我试图让Angular UI bootstraps typeahead使用我设置的REST资源.但我不确定如何使用它的异步特性.

目前我已经调整了Angular UI Bootstrap给出的示例.

所以我的html看起来像这样,调用getLibs()来获取typeahead下拉列表.

<div class='container-fluid' ng-controller="TypeaheadCtrl">
    <pre>Model: {{selected| json}}</pre>
    <input type="text"  typeahead="lib.name for lib in getLibs($viewValue)" active='active' ng-model="selected" typeahead-min-length='3' >
</div>
Run Code Online (Sandbox Code Playgroud)

我的资源看起来像这样:

angular.module('LibraryLookupService', ['ngResource']).factory('Library', 
    function($resource){
        return $resource(   "../../api/seq/library/?name__icontains=:searchStr" , {} , 
        {   'get':    {method:'GET'},
            'query':  {method:'GET', params: {} ,  isArray:false },
        }
    )
}
Run Code Online (Sandbox Code Playgroud)

);

我的控制器看起来像这样(我猜它在这里我做的事情不正确):

function TypeaheadCtrl($scope , Library){

    $scope.selected = undefined;
    $scope.active = undefined ;

    $scope.libs = [{name:'initial'} , {name:"values"}];

    $scope.getLibs = function(viewValue){
        console.log("value:", viewValue);
        if (viewValue.length > 3 ) { 
            var return_vals …
Run Code Online (Sandbox Code Playgroud)

asynchronous twitter-bootstrap angularjs

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

Django tastypie,可能只返回查询的元数据

我有一个Django Tastypie API设置.

我想查询数据库中与名称匹配的对象的数量.

这在现有模型资源上是否可行,或者我是否需要设置新资源来处理此特定情况?(此数据通常在结果的元数据部分返回?是否只有一个选项可以从参数中返回?)

所以,如果我的网址通常是这样的:

http://127.0.0.1:8000/api/v1/library/?name__icontains=ABC
Run Code Online (Sandbox Code Playgroud)

我可以添加一个参数或更改网址,以便它只返回元数据(我只想返回名称中包含"ABC"的库的数量)而不是所有对象吗?

django tastypie

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