小编vis*_*m c的帖子

django测试中TestCase和TransactionTestCase类之间的区别

你能不能解释一下TestCase类和TransactionTestCase类之间的区别.我已阅读该文档但其唯一的说法是TestCase在数据库事务中运行测试并使用回滚来"撤消"数据库中的测试,如果需要手动管理测试中的事务,则需要使用django.test.TransactionTestCase .

请你帮我理解一个例子的实际差异吗?我只是想知道TestCase失败的条件是什么?还是回滚是自动发生还是我们必须写回滚声明?

请帮我

python django django-models django-testing

9
推荐指数
2
解决办法
3565
查看次数

Django在主键和唯一约束上建立unique_together模型

我有一个模型如下.

class mc(models.Model):
    ap=models.CharField(max_length=50,primary_key=True)
    de=models.CharField(max_length=50)
    STATUS=models.CharField(max_length=12,default='Y')
    class Meta:
        unique_together=(("ap","de"),)
        db_table='mc'
Run Code Online (Sandbox Code Playgroud)

我给表mc写了ap ='1',de ='2'.

+----+----+--------+
| ap | de | STATUS |
+----+----+--------+
| 1  | 2  | Y      |
+----+----+--------+
Run Code Online (Sandbox Code Playgroud)

然后我试着写ap ='1'和de ='3',但它只是覆盖了前一个.现在该表包含

+----+----+--------+
| ap | de | STATUS |
+----+----+--------+
| 1  | 3  | Y      |
+----+----+--------+
Run Code Online (Sandbox Code Playgroud)

然后我试着写ap ='2',de ='3'及其工作.由于我已经给出了unique_together,因此ap和de的组合不起作用.

但是如果我没有在ap或de上使用'primary_key'或'unique'约束,unique_together会工作.

你能帮我吗?如何在主键上使用unique_together?

实际问题是,我有另一个类mc1,它使用外键到字段ap.

class mc1(models.Model):                                                                                            

    test=models.ForeignKey(mc,on_delete=models.CASCADE,to_field='ap')
Run Code Online (Sandbox Code Playgroud)

所以mc.ap应该是唯一的,以定义一个外键.

python django django-models django-rest-framework

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

如何使用 grep 匹配前 32 个字母后的模式?

我试图过滤具有模式 04:26 的行。我期待着这个命令,

cat file1.txt | grep -E '04:26'
Run Code Online (Sandbox Code Playgroud)

过滤时间戳后包含 04:26 的行。相反,我也得到了第二行。

文件1.txt

2022-12-23T04:26:47.748412+00:00 raspberrypi dnsmasq-dhcp[698]: DHCPREQUEST(eth0) 192.168.42.17 04:c8:07:23:04:26 
2022-12-23T04:26:47.749307+00:00 raspberrypi dnsmasq-dhcp[698]: DHCPACK(eth0) 192.168.42.17 04:c8:07:23:34:13
Run Code Online (Sandbox Code Playgroud)

如何屏蔽时间戳的前 32 个字母以防止匹配?

awk grep

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