मान लीजिए कि आप एक साधारण मॉडल करते हैं:Django मॉडल: ईमेल क्षेत्र अद्वितीय यदि नल नहीं/खाली
Class Contact(models.Model):
email = models.EmailField(max_length=70,blank=True)
first = models.CharField(max_length=25,blank=True)
last = models.CharField(max_length=25,blank=True)
मैं ईमेल सेट किया गया है करने के लिए अद्वितीय होना, फिर भी, मैं जरूरी ऐसा करने बनाने में चाहते हैं क्या ऐसा है कि मैं खाली ईमेल पते को बाहर कर देता हूं - और मुझे वह नहीं चाहिए।
मैं इस तरह के बारे में सोच रहा था लेकिन मुझे आश्चर्य है कि इससे निपटने का एक बेहतर तरीका है या नहीं।
from django.core.validators import email_re
from django.core.exceptions import ValidationError
def save(self, *args, **kwargs):
# ... other things not important here
self.email = self.email.lower().strip() # Hopefully reduces junk to ""
if self.email != "": # If it's not blank
if not email_re.match(self.email) # If it's not an email address
raise ValidationError(u'%s is not an email address, dummy!' % self.email)
if Contact.objects.filter(email = self.email) # If it already exists
raise ValidationError(u'%s already exists in database, jerk' % self.email)
super(Contact, self).save(*args, **kwargs)
क्या ऐसा करने का कोई बेहतर तरीका है?
class Contact(models.Model):
email = models.EmailField(max_length=70, null=True, blank=True, unique=True)
आप की स्थापना' अशक्त = TRUE', और 'अद्वितीय = TRUE'? क्या बात है की कोशिश की है एक ही समय में 'शून्य' और 'अद्वितीय' का उपयोग करने के साथ? – CppLearner
मेरे जीवन के लिए मैं यह नहीं समझ सकता कि मैंने कहां पढ़ा है कि रिक्त करना सही नहीं था = सही और अद्वितीय = एक charfield पर सही। –
lol I मान लीजिए कि आपने पहले से ही कोशिश की है :) किसी को देखने के लिए अच्छा है मुझे किसी को आकर्षित करता है। – CppLearner