我对Web应用程序和数据库的新东西都很陌生,所以这可能是一个愚蠢的问题.我想创建一个模型("CategoryModel"),其中的字段指向模型的另一个实例(其父项)的主要ID.
class CategoryModel(models.Model):
parentId = models.ForeignKey(CategoryModel)
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?谢谢!
我已经安装了jenkins,我正试图进入一个shell作为Jenkins来添加一个ssh密钥.我似乎无法进入jenkins用户:
[root@pacmandev /]# sudo su jenkins
[root@pacmandev /]# whoami
root
[root@pacmandev /]# echo $USER
root
[root@pacmandev /]#
Run Code Online (Sandbox Code Playgroud)
jenkins用户存在于我的/ etc/passwd文件中.Runnin su jenkins要求输入密码,但拒绝我的普通密码.sudo su jenkins好像什么也没做; 同样的sudo su - jenkins.我在CentOS上.
有没有办法让argparse将两个引号之间的任何内容识别为单个参数?它似乎继续看到破折号,并假设它是一个新选项的开始
我有类似的东西:
mainparser = argparse.ArgumentParser()
subparsers = mainparser.add_subparsers(dest='subcommand')
parser = subparsers.add_parser('queue')
parser.add_argument('-env', '--extraEnvVars', type=str,
help='String of extra arguments to be passed to model.')
...other arguments added to parser...
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时:
python Application.py queue -env "-s WHATEVER -e COOL STUFF"
Run Code Online (Sandbox Code Playgroud)
它给了我:
Application.py queue: error: argument -env/--extraEnvVars: expected one argument
Run Code Online (Sandbox Code Playgroud)
如果我离开第一个破折号,它的工作完全正常,但是能够传入带有破折号的字符串是至关重要的.我已经尝试用\来转义它,这会导致它成功但是将\添加到参数字符串有没有人知道如何解决这个问题?无论-s是否是解析器中的参数,都会发生这种情况.
编辑:我正在使用Python 2.7.
EDIT2:
python Application.py -env " -env"
Run Code Online (Sandbox Code Playgroud)
工作得非常好,但是
python Application.py -env "-env"
Run Code Online (Sandbox Code Playgroud)
才不是.
EDIT3:看起来这实际上是就是BEING已经讨论了一个错误:http://www.gossamer-threads.com/lists/python/bugs/89529,http://python.6.x6.nabble.com/issue9334- argparse-does-not-accept-options-taking-arguments-beginning-with-dash-regression-from-optp-td578790.html.它仅在2.7中而不是在optparse中.
EDIT4:当前的开放式错误报告是:http://bugs.python.org/issue9334
在django中,ManyToOneRel和ForeignKey字段之间有什么区别?
我正在研究在Github上托管的Eclipse项目.每次我想推送时,会弹出一个对话框,要求输入用户名和密码.有人知道如何保存这些,所以我不必每次都输入它们吗?我在Eclipse 4.2.1中使用Egit
我想拥有一个包含2个字段的模型,包括子项和父项.我怎么在django做这个?我有类似的东西
from django.db import models
class FooModel(models.Model)
parent = models.ForeignKey('self', blank=True, null=True)
children = models.ManyToOneRel('self', blank=True, null=True)
def __init__(self, *args, **kwargs):
super(FooModel, self).__init__(*args, **kwargs)
self.parent.children.add(self)
Run Code Online (Sandbox Code Playgroud)
但我不认为我应该像这样使用ManyToOneRel(特别是因为它在'空白'上给了我一个关键字错误).有什么建议?
通常,要添加subparser,argparse您必须执行以下操作:
parser = ArgumentParser()
subparsers = parser.add_subparser()
subparser = subparsers.add_parser()
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我正在尝试使用自己的解析器添加另一个命令行脚本,作为我的主脚本的子命令.是否有捷径可寻?
编辑:澄清一下,我有一个script.py看起来像这样的文件:
def initparser():
parser = argparse.ArgumentParser()
parser.add_argument('--foo')
parser.add_argument('--bar')
return parser
def func(args):
#args is a Namespace, this function does stuff with it
if __name__ == '__main__':
initparser().parse_args()
Run Code Online (Sandbox Code Playgroud)
所以我可以这样运行:
python script.py --foo --bar
Run Code Online (Sandbox Code Playgroud)
我正在尝试编写一个模块app.py,它是一个带有几个子命令的命令行界面,所以我可以运行类似的东西:
python app.py script --foo --bar
Run Code Online (Sandbox Code Playgroud)
我希望能够直接使用我从initparser()创建的解析器作为子解析器,而不是将所有initparser()逻辑复制并粘贴到其中app.py.这可能吗?
我是Django的新手用户,并且在Model.objects.all方法上遇到了一些麻烦。我有一个用户模型:(我知道以明文形式保存密码是不好的做法,但这仅是一个玩具示例)
class UsersModel(models.Model):
password = models.CharField(max_length=MAX_PASSWORD_LENGTH)
user = models.CharField(max_length=MAX_USERNAME_LENGTH, primary_key=True)
count = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
我有一个测试方法,该方法应该删除用户表中的所有条目:
def function(self):
UsersModel.objects.all().delete()
Run Code Online (Sandbox Code Playgroud)
由于某些原因,调用UsersModel.objects.all()会引发错误
DatabaseError: column "cs169proj1_usersmodel.user" must appear in the GROUP BY clause or
be used in an aggregate function
LINE 1: SELECT "cs169proj1_usersmodel"."user", "cs169proj1_usersmode...
Run Code Online (Sandbox Code Playgroud)
从Googling,我发现SQL中的此特定错误仅出现在Postgresql(我正在使用)上。有人知道如何解决/解决这个问题吗?
如何将manage.py test的结果打印到文件中?我试过了:
manage.py test > test.log
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,这只填充文件
Creating test database for alias 'default'...
Destroying test database for alias 'default'...
Run Code Online (Sandbox Code Playgroud)
而且不给我这个部分
........
----------------------
Ran 8 tests in 0.148s
Run Code Online (Sandbox Code Playgroud)
这就是我想要的.
我想在matlab中沿第3轴复制784x784矩阵.以下代码似乎有效:
mat = reshape(repmat(mat, 1,10000),784,784,10000);
Run Code Online (Sandbox Code Playgroud)
不幸的是,它需要很长时间才能运行它没有价值(将10,000s改为1000会使它花费几分钟,并且使用10,000会使我的整个机器几乎冻结).有更快的方法吗?
作为参考,我希望在长度为784的10,000个向量上使用mvnpdf,每个向量使用相同的协方差矩阵.所以我的最终通话看起来像
mvnpdf(X,mu,mat)
%size(X) = (10000,784), size(mu) = (10000,784), size(mat) = 784,784,10000
Run Code Online (Sandbox Code Playgroud)
如果有一种方法可以做到这一点,而不是重复协方差矩阵10,000次,那也是有帮助的.谢谢!
python ×7
django ×5
argparse ×2
activerecord ×1
database ×1
django-orm ×1
eclipse ×1
egit ×1
git ×1
jenkins ×1
linux ×1
matlab ×1
postgresql ×1
sql ×1
unit-testing ×1
unix ×1