अद्यतन: आप Django 1.8 या बेहतर उपयोग कर रहे हैं, @madzohan नीचे सही जवाब है।
इसे इस तरह कार्य करें:
#note the uuid without parenthesis
eyw_transactionref=models.CharField(max_length=100, blank=True, unique=True, default=uuid.uuid4)
कारण है कि क्योंकि कोष्ठक के साथ आप समारोह का मूल्यांकन किया जाता है जब मॉडल आयात किया जाता है और यह एक UUID जो हर लिए इस्तेमाल किया जाएगा निकलेगा उदाहरण बनाया गया।
ब्रांड्स के बिना आप केवल फ़ील्ड को डिफ़ॉल्ट मान देने के लिए बुलाए जाने वाले फ़ंक्शन को पारित करते हैं और प्रत्येक बार मॉडल आयात होने पर इसे कॉल किया जाएगा।
आप भी इस दृष्टिकोण ले जा सकते हैं:
class Paid(models.Model):
user=models.ForeignKey(User)
eyw_transactionref=models.CharField(max_length=100, null=True, blank=True, unique=True)
def __init__(self):
super(Paid, self).__init__()
self.eyw_transactionref = str(uuid.uuid4())
def __unicode__(self):
return self.user
आशा इस मदद करता है! अपने उत्पन्न प्रवास फाइल करने के लिए
from uuid import UUID
:
स्रोत
2013-06-04 18:41:09
मैं that..I'm अब मेरी DB में शून्य हो रही किया था, यह यह बचत नहीं कर रहा है इसका मतलब है! क्या मुझे अपना विचार पोस्ट करना चाहिए? – picomon
यदि आपके पास डिफ़ॉल्ट मान है तो आपको फ़ील्ड परिभाषा में 'null = True' की आवश्यकता नहीं होगी। मैं जवाब से हटा दूंगा। इसके बिना कोशिश करो। –
अब यह त्रुटि प्राप्त करना/वेतन/ (1048, "कॉलम 'eyw_transactionref' शून्य नहीं हो सकता है") मैंने खाली = सही भी हटा दिया। – picomon