我正在编写一个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应用程序,其中我的主模型具有其他数据库表的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?
我正在使用 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) 我在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) 我正在使用pysnmp对某些网络设备进行SNMP轮询。正常运行时间作为时间值返回,该值是1/100秒。您如何将时间标记转换为天/小时/秒等?
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (197740964) 22 days, 21:16:49.64
Run Code Online (Sandbox Code Playgroud)