2010-03-26 22 views
5

मेरे पास पहले_नाम, last_name, आदि जैसे विभिन्न फ़ील्ड के समूह के साथ एक मॉडल है। मेरे पास फ़ील्ड first_name_ud, last_name_ud, आदि भी हैं जो संबंधित फ़ील्ड के लिए अंतिम अपडेट की गई तारीख से मेल खाते हैं (यानी जब first_name संशोधित होता है, तो first_name_ud वर्तमान दिनांक पर सेट होता है)।एक अलग फ़ील्ड बदलते समय स्वचालित रूप से फ़ील्ड अपडेट करें

क्या यह स्वचालित रूप से होने का कोई तरीका है या क्या मुझे यह जांचने की ज़रूरत है कि हर बार जब मैं ऑब्जेक्ट को सहेजता हूं और संबंधित "_ud" फ़ील्ड अपडेट करता हूं तो कौन से फ़ील्ड बदल जाते हैं।

बहुत बहुत धन्यवाद!

उत्तर

3

या तो write Field children जो दोनों फ़ील्ड अपडेट करते हैं या सर्वर-साइड ट्रिगर्स का उपयोग करते हैं।

0

आपकी मदद के लिए धन्यवाद। मैंने मॉडल की बचत विधि को संशोधित करना समाप्त कर दिया, जो मुझे लगता है कि काम करेगा:

def save(self): 
    current_date = date.today() 
    if self.id: 
     try: 
      old = UserProfile.objects.get(pk = self.id) 
      fields = UserProfile._meta.fields 
      for field in fields: 
       field_name = field.name 
       date_name = field_name + '_ud' 
       if not field_name.endswith('_ud') and date_name in fields: 
        if self.__dict__[field_name] != old.__dict__[field_name]: 
         self.__dict__[date_name] = current_date 
         self.date_updated = current_date 
     except UserProfile.DoesNotExit: 
      pass 
    super(UserProfile, self).save() 
संबंधित मुद्दे