小编hol*_*lms的帖子

Django 用户:获取组列表,或如何将 MultipleChoiceField 转换为 ChoiceField

我搜索过类似的主题但没有找到我需要的..

我用 UserAttributes 模型扩展了 Users 模型,添加了一些附加字段等等。现在我正在尝试使 ModelForm 出来。所以我在这里遇到了一些问题。

我想将组列为 ChoiceField 而不是 MultipleChoiceField。这是规范的要求,因此必须如此。

所以这是代码..

from django.forms               import ModelForm
from django.contrib.auth.models import User
from helpdesk.models.userattributes      import *
from django.utils.translation import ugettext as _

class SettingsOperatorsForm(ModelForm):


    groups = forms.ChoiceField(
        label=_(u'Rights'),
        required=True,
        choices=["what's in here?"]
    )

    class Meta:
        model   = UserAttributes
        fields  = ('first_name', 'last_name', 'job_title', 'email', 'password', 'is_active', 'groups'  )
Run Code Online (Sandbox Code Playgroud)

数据库中有 auth_group 表,所以我尝试将其设置为这样,但我根本没有显示任何表单:

from django.contrib.auth.models import User, Group

groups = forms.ChoiceField(
    label=_(u'Rights'),
    required=True,
    choices=Group.objects.all()
)
Run Code Online (Sandbox Code Playgroud)

我认为最好将 multipleChoiceField 转换为 ChoiceField

简单来说:

替代文本

应该变成只是选择框。

python django

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

django/python导入性能

有人可以证明为什么使用这样的解决方案是一个坏习惯:

在django中,98%的案例需要使用

  from django.http import HttpResponseRedirect
  from django.core.urlresolvers import reverse
  from django.utils.translation import ugettext as _
Run Code Online (Sandbox Code Playgroud)

无论如何在我的项目中我的每个视图都有这些导入,并且几乎在视图的每个第二个函数中都使用了所有内容:

from datetime import datetime
from django.conf import settings
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
from django.core import paginator
from django.db import connection
from django.db.models import Q
from django.http import HttpResponseRedirect, Http404, HttpResponse
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.utils.translation import ugettext as _
Run Code Online (Sandbox Code Playgroud)

现在添加一些模型和表单,我有50行废话,根本无法读取.

我头脑中的第一件事当然是提出更多观点,分割一些操作等等.但仍然有大约30行导入在代码中杀死了我的方向.

然后我决定将95%的时间内在视图中使用的所有内容放到目录/project/app/imports/view.py中.现在我有一些常见的东西,只有一个导入,但我的同事攻击我,这是非常难以阅读这种代码,因为你无法看到什么是导入,以及为什么这么难打开一个IDE中的更多选项卡.. ??? [特别是vim用户,他们有FRAMES,他正在使用vim]

我对模型做了同样的事情,我的模型有它自己的目录,因为它在那里超过50个,而且那些文件不小 - 每个约150行..即使这些文件内部的模型很少..所以我只是在做就像是 :

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

python django

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

如何:在Python中将字典转换为字符串?

可能重复:
在Python中从字典创建或分配变量

你好

我们有这样的字典:

data = {'raw':'lores ipsum', 'code': 500}
Run Code Online (Sandbox Code Playgroud)

如何将此dict转换为字符串?结果必须是这样的:

print raw
print code
#output is 
#  lores ipsum
#  500
Run Code Online (Sandbox Code Playgroud)

编辑: 好的,所以我想要的是原始和代码变量可用..再举一个例子

data = {'raw':'lores ipsum', 'code': 500}
var1 = code
var2 = raw
Run Code Online (Sandbox Code Playgroud)

使用变量进行大量的字符串操作变得很困难,这就是dict,这是类方法...所以它的结果就是这样:self.data ['raw'] [0],这让我每次都写这个使"原始"变量更舒服......(想象一下,在每一行使用它来加入和格式化操作!!!)无论如何这个变量只能在这个方法中使用,所以这个解决方案没有副作用. .

编辑:删除,没有人理解我想要的

python

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

Makefile bash和xargs变量不起作用

这是一个Makefile

roman@debian ~/D/O/devops> cat Makefile 
install:
        -cat projects.txt  | xargs -n 2 bash -c 'git clone $0 $1'
Run Code Online (Sandbox Code Playgroud)

这是projects.txt

roman@debian ~/D/O/devops> cat projects.txt
git@github.com:xxx/xxx1.git   app-xxx1
git@github.com:xxx/xxx2.git   app-xxx2
Run Code Online (Sandbox Code Playgroud)

这是当我将此命令复制到bash时会发生什么 - 它的工作原理:

roman@debian ~/D/O/devops> cat projects.txt  | xargs -n 2 bash -c 'git clone $0 $1'

fatal: destination path 'app-xxx1' already exists and is not an empty directory.
Run Code Online (Sandbox Code Playgroud)

它正确使用git clone它只是repo存在.

现在,当您执行make install此操作失败时,所有变量都为空:

roman@debian ~/D/O/devops> make install 
cat projects.txt  | xargs -n 2 bash -c 'git clone  '
You must specify …
Run Code Online (Sandbox Code Playgroud)

bash makefile

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

如何在Makefile中具有动态目标?

在下面查看此Makefile。

compose:
    docker-compose up myapp

compose-shell:
    docker-compose run myapp /bin/bash

compose-shellplus:
    docker-compose run myapp make shell

compose-test:
    docker-compose run myapp make test

compose-migrate:
    docker-compose run myapp make migrate

compose-load:
    docker-compose run myapp make load

compose-export:
    docker-compose run myapp make export

compose-flush:
    docker-compose run myapp make flush

# run tests
test:
    python manage.py test --settings=$(PROJECT_SETTINGS)

# install depedencies (and virtualenv for linux)
install:
ifndef WIN
    -virtualenv -p python3 .venv
endif
    pip install -r requirements.txt

# handle django migrations
migrate:
    python manage.py …
Run Code Online (Sandbox Code Playgroud)

makefile

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

如何在emacs中进行适当的缩进?

我只想选择一些文本,然后按Tab键缩小选定文本的选定整个区域,缩进4个空格.

emacs

0
推荐指数
1
解决办法
1137
查看次数

标签 统计

python ×3

django ×2

makefile ×2

bash ×1

emacs ×1