小编spe*_*ndo的帖子

crispy-forms:为其中一个输入添加css类

在我的forms.py

[...]
self.helper.layout = Layout(
    Field('name'),
    Field('description'),
)
self.helper.form_class = 'form-horizontal'
self.helper.label_class = 'col-md-2 col-xs-3'
self.helper.field_class = 'col-md-10 col-xs-9'
[...]
Run Code Online (Sandbox Code Playgroud)

它呈现给

<div id="div_id_name" class="form-group">
    <label class="control-label col-md-2 col-xs-3 requiredField" for="id_name">
        Name
    </label
    <div class="controls col-md-10 col-xs-9">
        <input id="id_name" class="textinput textInput form-control" type="text" name="name" maxlength="20">
    </div>
</div>
<div id="div_id_description" class="form-group">
    <label class="control-label col-md-2 col-xs-3 requiredField" for="id_description">
        Description
    </label>
    <div class="controls col-md-10 col-xs-9">
        <textarea id="id_description" class="textarea form-control" rows="10" name="description" cols="40"></textarea>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

现在我想只是名称输入要小一些,就像这样:

[...]
<div class="controls col-md-8 col-xs-7"> …
Run Code Online (Sandbox Code Playgroud)

css django twitter-bootstrap django-crispy-forms twitter-bootstrap-3

11
推荐指数
3
解决办法
9826
查看次数

GADM-Maps跨国比较图形

也许是因为我对R比较新,我在http://www.gadm.org/上使用gadm-Mapfiles时遇到了问题.

我尝试绘制一个包含多个国家/地区的地图并将它们相互比较(使用不同的颜色).

这就是我的工作

library('sp')
##
load(url('http://biogeo.ucdavis.edu/data/gadm2/R/ARG_adm0.RData')) 
# loads an Object "gadm" with shape of Argentinia
arg <- gadm # is there a more convenient way to do this in one line?
load(url('http://biogeo.ucdavis.edu/data/gadm2/R/CHL_adm0.RData'))
# loads an Object "gadm" with shape of Chile
chl <-gadm
load(url('http://biogeo.ucdavis.edu/data/gadm2/R/BOL_adm0.RData'))
# loads an Object "gadm" with shape of Bolivia
bol <- gadm
##
spplot(c(arg, chl, bol))
# output: unable to find an inherited method for function "spplot", for signature "list"
Run Code Online (Sandbox Code Playgroud)

这是我的问题:

  1. (这个问题可能是由我的新手引起的)是否有更方便的方法来加载shapefile?我觉得一直重命名gadm-Object是非常愚蠢的.也许甚至有一种方法,R只下载一次数据,然后将它们存储在工作区/本地某处?
  2. 我怎样才能说服R在一张地图上绘制所有这些国家?

先感谢您! …

graphics maps r

10
推荐指数
2
解决办法
4957
查看次数

Rails 4:accepted_nested_attributes_for和质量分配

我试图在Rails 4中重现railscast#196.但是,我遇到了一些问题.

在我的例子中,我尝试生成一个电话簿 - 每个人可以有多个PhoneNumbers

这些是我的控制器的重要部分:

class PeopleController < ApplicationController
    def new
        @person = Person.new
        3.times{ @person.phones.build }
    end

    def create
        @person = Person.create(person_params)
        @person.phones.build(params[:person][:phones])

        redirect_to people_path
    end

private

    def person_params
        params.require(:person).permit(:id, :name, phones_attributes: [ :id, :number ])
    end
end
Run Code Online (Sandbox Code Playgroud)

这是我的新观点

<h1>New Person</h1>

<%= form_for :person, url: people_path do |f| %>
    <p>
        <%= f.label :name %> </ br>
        <%= f.text_field :name %>
    </p>

    <%= f.fields_for :phones do |f_num| %>
        <p>
            <%= f_num.label :number %> </ br>
            <%= f_num.text_field …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails object nested-forms nested-attributes

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

将data.frame的每个单元格与其权重相乘

我想做的是简单的尴尬 - 然而我失败了.

我有一个带有"characters"和"numerics"的data.frame.data.frame的一列代表权重.

我想将数据帧的每个单元格与相应的权重相乘(如果它是数字).

我该怎么做(最好不使用嵌套循环).

先感谢您!

例:

   c1   c2   w   
l1 abc  2    1
l2 dxf  3    0.5
l3 ghi  4    1.5
Run Code Online (Sandbox Code Playgroud)

应该成为

   c1   c2   w   
l1 abc  2    1
l2 dxf  1.5  0.5
l3 ghi  6    1.5
Run Code Online (Sandbox Code Playgroud)

r apply dataframe

8
推荐指数
2
解决办法
8065
查看次数

按年拆分数据

我有这样的数据:

ID    ATTRIBUTE        START          END
 1            A   01-01-2000   15-03-2010
 1            B   05-11-2001   06-02-2002
 2            B   01-02-2002   08-05-2008
 2            B   01-06-2008   01-07-2008
Run Code Online (Sandbox Code Playgroud)

我现在想要计算每年具有特定属性的不同ID的数量.

结果可能如下所示:

YEAR    count(A)    count(B)
2000          1           0
2001          1           1
2002          1           2
2003          1           1
2004          1           1
2005          1           1
2006          1           1
2007          1           1
2008          1           1
2009          1           0
2010          1           0
Run Code Online (Sandbox Code Playgroud)

我计算出现次数的第二步可能很容易.

但是,我如何将数据分成多年?

先感谢您!

split r dataframe

8
推荐指数
2
解决办法
2820
查看次数

对grep列出的*each*项执行操作

如何单独为grep列出的每个项目执行操作?

背景:

我使用grep列出包含特定模式的所有文件:

grep -l '<pattern>' directory/*.extension1
Run Code Online (Sandbox Code Playgroud)

我想删除所有列出的文件,但也删除所有具有相同文件名但扩展名不同的文件:.extension2.

我尝试使用管道,但它似乎将grep的输出作为一个整体.

在找到有-exec选项,但grep没有这样的.

bash shell grep list exec

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

Python 2.x和3.x中的有效语法是否引发异常?

如何将这段代码移植到Python 3,以便它可以同时在Python 2和Python3中运行?

raise BarException, BarException(e), sys.exc_info()[2]
Run Code Online (Sandbox Code Playgroud)

(从http://blog.ionelmc.ro/2014/08/03/the-most-underrated-feature-in-python-3/复制)

奖励问题
做类似的事情有意义吗

IS_PYTHON2 = sys.version_info < (3, 0)

if IS_PYTHON2:
    raise BarException, BarException(e), sys.exc_info()[2]
    # replace with the code that would run in Python 2 and Python 3 respectively
else:
    raise BarException("Bar is closed on Christmas")
Run Code Online (Sandbox Code Playgroud)

python exception python-2.x python-3.x

8
推荐指数
2
解决办法
6137
查看次数

在Python 2和Python 3中捕获破碎的管道

我尝试编写一些代码来捕获Broken Pipe Error.代码应该在Python 2.x和Python 3.x中运行.

在Python 2.xa中,断管用a表示 socket.error

socket.error: [Errno 32] Broken pipe
Run Code Online (Sandbox Code Playgroud)

这在Python 3.x中已经改变了 - 现在破损的管道就是了 BrokenPipeError

BrokenPipeError: [Errno 32] Broken pipe
Run Code Online (Sandbox Code Playgroud)

异常处理的语法也有所改变(参见/sf/answers/2412417871/),所以我需要做的是:

try:
    do_something()
except BrokenPipeError as e: # implies Python 3.x
    resolve_for_python2()
except socket.error as e:
    if sys.version_info[0] == 2: # this is necessary, as in Python >=3.3
                                 # socket.error is an alias of OSError
                                 # https://docs.python.org/3/library/socket.html#socket.error
        resolve_for_python3()
    else:
        raise
Run Code Online (Sandbox Code Playgroud)

还有(至少)剩下的一个问题:在Python 2.x中没有BrokenPipeError,所以每当Python 2.x中出现异常时do_something()都会抛出另一个异常并抱怨它不知道BrokenPipeError.正如socket.error在Python 3.xa中弃用的那样,在不久的将来,Python 3.x中可能出现类似的问题.

我该怎么做才能使这些代码在Python 2.x和Python …

python exception python-2.x python-3.x

8
推荐指数
2
解决办法
6110
查看次数

为每个组选择随机行

我有一张这样的桌子

ID    ATTRIBUTE
 1    A
 1    A
 1    B
 1    C
 2    B
 2    C
 2    C
 3    A
 3    B
 3    C
Run Code Online (Sandbox Code Playgroud)

我想为每个ID 选择一个随机属性.结果因此看起来像这样(虽然这只是众多选择之一

ATTRIBUTE
B
C
C
Run Code Online (Sandbox Code Playgroud)

这是我对这个问题的尝试

SELECT
  "ATTRIBUTE"
FROM
  (
  SELECT
    "ID",
    "ATTRIBUTE",
    row_number() OVER (PARTITION BY "ID" ORDER BY random()) rownum
  FROM
    table
  ) shuffled
WHERE
  rownum = 1
Run Code Online (Sandbox Code Playgroud)

但是,我不知道这是否是一个很好的解决方案,因为我需要引入行号,这有点麻烦.

你有更好的吗?

sql random postgresql group-by window-functions

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

多对多关系的内联表格集

按照Kevin Dias在本文中的说明,我尝试为两个相关模型生成一个表单.这似乎适用于一对多的关系,但是我遇到了使用多对多关系的问题.

以下是用户角色管理的一些示例代码:

#models.py
from django.db import models

class Role(models.Model): # for each role there can be multiple users
    role_name=models.CharField(max_length=20)

class User(models.Model): # each user can have multiple roles
    name=models.CharField(max_length=20)
    role=models.ManyToManyField(Role, through='UserRole')

class UserRole(models.Model): # table to store which user has which roles
    role=models.ForeignKey(Role)
    user=models.ForeignKey(User)

# forms.py
from django.forms import ModelForm
from django.forms.models import inlineformset_factory

from rightmanagement.models import Role, User

class UserForm(ModelForm):
    class Meta:
        model = User

RoleFormSet = inlineformset_factory(User, Role) # this is probably the line that …
Run Code Online (Sandbox Code Playgroud)

python django

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