如何在django中测试模型字段类型?

kxeu7u2r  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(337)

我试图测试一个字段是否实际上是主键。

class PatientTests(test.TestCase):
    def test_primary_key(self):
        # Cannot be NULL
        patient = models.Patients(patient_id=None)
        patient.save()

但这次测试毫无例外地通过了。
我的模型定义:

class Patients(models.Model):
    patient_id = models.CharField(max_length=12, primary_key=True)

使用django版本3.0.7

ozxc1zmp

ozxc1zmp1#

这个 MyModel._meta.pk.name 会告诉你 primary key

fnx2tebb

fnx2tebb2#

无论出于何种原因,代码都会导致django保存主键设置为空字符串的对象 '' . 在文档中,django的约定是使用空字符串作为null。
正如他们所说,这是通过设计和记录。此外,他们还表示 primary_key=True 并不意味着 blank=False , null=False 以及 unique=True 但当我加上 null=False 没用,考试又通过了。我认为这对django来说是个问题或者至少是一个未定义的行为。

相关问题