2014-12-22 8 views
5

मैं अपने देव env पर Django 1.7.1 से 1.8 तक अपग्रेड करने का प्रयास कर रहा हूं। मुझे लगता है कि मेरे मॉडल में से एक के साथ कोई समस्या है, मुझे लगता है कि कोर फाइल को अपग्रेड किया गया है और यह मेरे मॉडल के साथ गड़बड़ कर रहा है। मुझे लगता है कि यह मरने का कारण क्या है।Django क्लास ओवरराइड विफल रहता है सिस्टम चेक

यह केवल त्रुटि मैं जब मैं एक manage.py परीक्षण

CommandError: System check identified some issues: 

ERRORS: 
graphite_alerts.CheckResults: (models.E020) The 'CheckResults.check()' class method is currently overridden by <django.db.models.fields.related.ReverseSingleRelatedObjectDescriptor object at 0x3a76310>. 

मैं वर्ग के नाम को बदलने की कोशिश की और अपने मॉडल चारों ओर देखा चलाने के लिए प्रयास करते हैं और नहीं कर सकते कुछ भी है कि एक कारण हो जाएगा खोजने के लिए लग रहे है

class CheckResults(models.Model): 

    WARN = 'warn' 
    ERROR = 'error' 
    OK = 'ok' 
    DOWN = 'down' 
    STATUS_CHOICES = (
     (WARN, 'Warn'), 
     (ERROR, 'Error'), 
     (OK, 'OK'), 
     (DOWN, 'Down'), 
    ) 

    target = models.CharField(max_length=1000) 
    additional_graph_target = models.CharField(max_length=1000, blank=True) 
    value = models.DecimalField(max_digits=9, decimal_places=2) 
    timestamp = models.DateTimeField(db_index=True) 
    status = models.CharField(max_length=6, choices=STATUS_CHOICES, default='ok') 
    check = models.ForeignKey(Check, related_name='results') 
    tags = TaggableManager() 

    def __unicode__(self): 
     return self.target 

    @models.permalink 
    def get_absolute_url(self): 
     return ('graphite-check-result-list-view',(), {'pk': self.check.pk, 'target': self.target}) 

    def generate_graphite_image_url(self): 
     params = { } 
     params['target'] = [] 
     params['target'].append(self.target) 
     params['target'].append('threshold(' + str(self.check.warn) + ',"Warn","yellow")') 
     params['target'].append('threshold(' + str(self.check.error) + ',"Error","red")') 
     params['from'] = '-7days' 
     params['width'] = '900' 
     params['minorGridLineColor'] = 'C0C0C0' 
     params['majorGridLineColor'] = 'C0C0C0' 
     params['bgcolor'] = '333333' 
     request = requests.get(self.check.GRAPHITE_URL+self.check.RENDER_PAGE,params=params) 
     return urllib2.unquote(request.url.decode('UTF-8')) 

    def generate_additional_graphite_image_url(self): 
     params = { } 
     params['target'] = [] 
     params['target'].append(self.additional_graph_target) 
     params['target'].append('threshold(' + str(self.check.warn) + ',"Warn","yellow")') 
     params['target'].append('threshold(' + str(self.check.error) + ',"Error","red")') 
     params['from'] = '-7days' 
     params['width'] = '900' 
     params['minorGridLineColor'] = 'C0C0C0' 
     params['majorGridLineColor'] = 'C0C0C0' 
     params['bgcolor'] = '333333' 
     request = requests.get(self.check.GRAPHITE_URL+self.check.RENDER_PAGE,params=params) 
     return urllib2.unquote(request.url.decode('UTF-8')) 

    class Meta: 
     ordering = ("timestamp",) 
     unique_together = (("target", "timestamp"),) 
+2

Django 1.8 अभी तक जारी नहीं किया गया है। अब के लिए 1.7.एक्स के साथ चिपकाएं। – Alasdair

+0

धन्यवाद! मैंने अभी कुछ और जांच पूरी कर ली है और ऐसा लगता है कि नए संस्करण कक्षाओं के नाम पर चर के समान नहीं हैं। मेरे पास कक्षा की जांच थी, और एक परिवर्तनीय जांच थी। बस उन्हें एक साथ काम करने के तरीके को समझने की जरूरत है! शीघ्र जवाब देने के लिए ध्न्यवाद! – Joey

उत्तर

5

1,6 से 1.8 के लिए एक परियोजना को अपडेट करते समय मैं एक ही समस्या में पड़ गए: ओवरराइड त्रुटि

इस वर्ग है।

यह समस्या आपके मॉडल के check फ़ील्ड से निकलती प्रतीत होती है।
यह Model.check() विधि के साथ संघर्ष करता है, जिसे मॉडल परिभाषा में त्रुटियों की पहचान करने में आपकी सहायता के लिए Django's system checks के दौरान कहा जाता है।

आपको फ़ील्ड का नाम बदलना होगा।

+0

धन्यवाद के। टॉमोव, मैं वास्तव में इसे अद्यतन करना भूल गया। मैंने चेक() फ़ील्ड को check_field() में बदल दिया और यह ठीक काम करता है! – Joey

संबंधित मुद्दे