我试图测试一个字段是否实际上是主键。
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
2条答案
按热度按时间ozxc1zmp1#
这个
MyModel._meta.pk.name
会告诉你primary key
fnx2tebb2#
无论出于何种原因,代码都会导致django保存主键设置为空字符串的对象
''
. 在文档中,django的约定是使用空字符串作为null。正如他们所说,这是通过设计和记录。此外,他们还表示
primary_key=True
并不意味着blank=False
,null=False
以及unique=True
但当我加上null=False
没用,考试又通过了。我认为这对django来说是个问题或者至少是一个未定义的行为。