小编zoi*_*erg的帖子

Django:save()vs update()来更新数据库?

我正在编写一个Django应用程序,我需要一个函数来更新数据库中的字段.有没有理由做其中一种方法而不是另一种?

def save_db_field(name,field,value):
    obj = MyModel.objects.get(name=name)
    obj.field = value
    obj.save()

def update_db_field(name,field,value):
    MyModel.objects.get(name=name).update(field=value)
Run Code Online (Sandbox Code Playgroud)

似乎第二个更好,因为它在一个DB调用中而不是两个调用它.有没有理由为什么提取,然后更新是更好的?

django

35
推荐指数
5
解决办法
8万
查看次数

Django:使用objects.values()并在模板中获取ForeignKey数据

我有一个Django应用程序,其中我的主模型具有其他数据库表的ForeignKey字段.

class Bugs(models.Model):
    bug_id = models.PositiveIntegerField(primary_key=True)
    bug_severity = models.ForeignKey(Bug_severity,null=True)
    priority = models.ForeignKey(Priority,null=True)
    bug_status = models.ForeignKey(Bug_Status,null=True)
    resolution = models.ForeignKey(Resolution,null=True)
    etc...
Run Code Online (Sandbox Code Playgroud)

所有ForeignKey表都有一个unicode函数,它返回我想要在模板中显示的名称.

class Priority(models.Model):
    value = models.CharField(max_length=64)
    sortkey = models.PositiveSmallIntegerField()
    isactive = models.NullBooleanField()
    visibility_value_id = models.SmallIntegerField(null=True,blank=True)

    def __unicode__(self):
        return self.value
Run Code Online (Sandbox Code Playgroud)

在视图中,我运行的查询为:

    bugs = Bugs.objects.filter(active=True).order_by('priority__sortkey','bug_severity__sortke
Run Code Online (Sandbox Code Playgroud)

在模板中,我可以遍历它们,并正确显示ForeignKey值.

{% for bug in bugs %}
   <tr class="bugrow" >
   <td>{{bug.bug_id}}</td>
   <td>{{bug.priority}}</td>
   <td>{{bug.bug_severity}}</td>
   <td>{{bug.bug_status}}</td>
   <td>{{bug.resolution}}</td>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我需要在将Bugs数据发送到模板之前对其进行操作,因此我使用values()方法返回字典.当我将该字典传递给模板时,它不会显示任何指向ForeignKey的字段.

我很确定原因是值只返回实际的数据库值,所以它不能跟随FK.

问题是,如何操作将数据发送到模板的数据,仍然遵循ForeignKey?

django

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

devpi 索引中的 toxresult_upload 权限

我正在使用 Python devpi服务器,当我创建索引时,它添加了一个默认设置acl_toxresult_upload=:ANONYMOUS:,但我不知道它的含义。

当我在 Web 界面中查看索引时,它显示:

permissions

toxresult_upload
    Special: ANONYMOUS 

upload
    Users: my-user 
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了它,但找不到它的含义的任何解释。我唯一能找到的是一个python 测试,它表明它与上传测试有关,但我不确定这对 Pypi 索引意味着什么。

    # anonymous may upload tests
    assert with_user(permissionrequest, None).has_permission(
        'toxresult_upload', StageACL(stage, False))
Run Code Online (Sandbox Code Playgroud)

python devpi

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

Jenkins JUnit插件给出错误“错误:未找到测试报告文件。配置错误?”

我在Kubernetes集群中运行了Jenkins主容器。我将一个单独的VM配置为构建从属服务器,以便它可以构建容器。

我Multibranch Pipeline在git repo中与Jenkinsfile一起使用。

管道构建了Docker应用程序的Docker映像。我已经安装了django_nose,因此它可以生成带有测试结果的xunit文件。

Django设置具有以下选项以启用xunit测试结果。

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
NOSE_ARGS = [
    '--with-xunit',
    '--xunit-file=/tmp/tests/results/results.xml',
] 
Run Code Online (Sandbox Code Playgroud)

在管道中,我有以下阶段:

stage("Test") {
    sh("docker run --rm -i \
        -v '${env.WORKSPACE}/tests/results/':/tmp/tests/results \
        ${image} python3 manage.py test")
    junit '${env.WORKSPACE}/tests/results/*.xml'
}
Run Code Online (Sandbox Code Playgroud)

它在Jenkins工作区中安装目录作为容器中的卷,以便在容器完成后Jenkins可以查看保存的测试结果。

运行构建时,出现以下错误:

[Pipeline] { (Test)
[Pipeline] sh
[my_project-test-7T6G6Z...QQBYGFA] Running shell script
+ docker run --rm -i -v /home/jenkins/jenkins_home/workspace/my_project-test-7T6G6Z...QQBYGFA/tests/results/:/tmp/tests/results my-registry/username/my_project python3 manage.py test
nosetests --with-xunit --xunit-file=/tmp/tests/results/results.xml --verbosity=1
Creating test database for alias 'default'...
............
----------------------------------------------------------------------
Ran 12 tests in 1.421s

OK
Destroying test database for alias …
Run Code Online (Sandbox Code Playgroud)

django junit xunit jenkins

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

Python:将snmp时间标记转换为秒/天等

我正在使用pysnmp对某些网络设备进行SNMP轮询。正常运行时间作为时间值返回,该值是1/100秒。您如何将时间标记转换为天/小时/秒等?

DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (197740964) 22 days, 21:16:49.64
Run Code Online (Sandbox Code Playgroud)

python snmp

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

标签 统计

django ×3

python ×2

devpi ×1

jenkins ×1

junit ×1

snmp ×1

xunit ×1