Oli*_*Oli 4 django django-models
假设我有一个Person模型:
class Person(models.Model):
name = models.CharField(max_length=50)
email = models.EmailField()
telephone = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)
对于每个人,我想确保有联系信息.我不需要电子邮件和电话(虽然两者都可以)但我需要确保至少提供一个.
我知道我可以在表格中检查这些东西,但有没有办法在模型/数据库级别这样做以节省重复自己?
Ala*_*air 14
clean为您的模型编写方法.
from django.core.exceptions import ValidationError
class Person(models.Model):
name = models.CharField(max_length=50)
email = models.EmailField()
telephone = models.CharField(max_length=50)
def clean(self):
if not (self.email or self.telephone):
raise ValidationError("You must specify either email or telephone")
Run Code Online (Sandbox Code Playgroud)
如果您使用模型表单(例如在Django管理员中),Django将为您调用该clean方法.另外,如果您直接使用ORM,则可以full_clean()手动调用实例上的方法.
| 归档时间: |
|
| 查看次数: |
933 次 |
| 最近记录: |