में डिफ़ॉल्ट मान के रूप में UUID मैंने django मॉडल में डिफ़ॉल्ट मान के अजीब व्यवहार को देखा है। उदाहरण के लिए हम एक सरल Django मॉडल है:Django मॉडल
import uuid
...
class SiteUser(models.Model):
...
username = models.CharField(max_length=255, verbose_name=u"Username")
activation_key = models.CharField(max_length=64, verbose_name=u"Activation key", default=uuid.uuid1())
जब मैं एक नया उपयोगकर्ता बनाने, और उसके बाद इस तरह एक दूसरे से:
user_a = SiteUser(username="UserA")
user_a.save()
user_b = SiteUser(username="UserB")
user_b.save()
Django ही activation_key
साथ 2 उपयोगकर्ताओं बनाता है लेकिन फिर मैं इसे ऐसा करता हूं:
user_a = SiteUser(username="UserA")
user_a.activation_key = uuid.uuid1()
user_a.save()
user_b = SiteUser(username="UserB")
user_b.activation_key = uuid.uuid1()
user_b.save()
सब कुछ ठीक काम करता है डी Django विभिन्न सक्रियण कुंजी के साथ 2 उपयोगकर्ताओं बनाता है।
यहां क्या हो रहा है? पाइथन मॉडल ऑब्जेक्ट लोड करता है और जब wsgi ऐप शुरू होता है या मॉडल के डिफ़ॉल्ट मान की गणना करता है? यूयूआईडी पहले मामले में समान मूल्य क्यों देता है लेकिन दूसरे में अलग है?
धन्यवाद।
@Rohan का उल्लेख है, यह एक प्रतिदेय की जरूरत है। यहां प्रासंगिक दस्तावेज https://docs.djangoproject.com/en/dev/ref/models/fields/#default है – karthikr