2011-01-17 16 views
13

काम नहीं करता है मैं Django 1.2.3 और South 0.7.3 का उपयोग कर रहा हूं।Django-South आत्मनिरीक्षण नियम

मैं Django-South का उपयोग करने के लिए अपने ऐप (नाम core) को बदलने की कोशिश कर रहा हूं। मेरे पास एक कस्टम मॉडल/फ़ील्ड है जिसका मैं उपयोग कर रहा हूं, नाम ImageWithThumbsField। यह मूल रूप से सिर्फ ol 'इस तरह के ऊंचाई, वजन, आदि

के रूप में कुछ विशेषताओं के साथ django.db.models.ImageField./manage.py convert_to_auth core का प्रयास करते समय मैं दक्षिण के ठंड त्रुटियों receieve है। मुझे पता नहीं क्यों, मैं शायद कुछ याद कर रहा हूँ ...

मैं एक साधारण कस्टम मॉडल का उपयोग कर रहा है:

from django.db.models import ImageField 

class ImageWithThumbsField(ImageField): 
    def __init__(self, verbose_name=None, name=None, width_field=None, height_field=None, sizes=None, **kwargs): 
     self.verbose_name=verbose_name 
     self.name=name 
     self.width_field=width_field 
     self.height_field=height_field 
     self.sizes = sizes 
     super(ImageField, self).__init__(**kwargs) 

और ये मेरे आत्मनिरीक्षण नियम है, जो मैं अपने models.py के शीर्ष करने के लिए जोड़ है :

! Cannot freeze field 'core.additionalmaterialphoto.photo' 
! (this field has class lib.thumbs.ImageWithThumbsField) 
! Cannot freeze field 'core.material.photo' 
! (this field has class lib.thumbs.ImageWithThumbsField) 
! Cannot freeze field 'core.material.formulaimage' 
! (this field has class lib.thumbs.ImageWithThumbsField) 

! South cannot introspect some fields; this is probably because they are custom 
! fields. If they worked in 0.6 or below, this is because we have removed the 
! models parser (it often broke things). 
! To fix this, read http://south.aeracode.org/wiki/MyFieldsDontWork 

किसी को भी पता है क्यों:

from south.modelsinspector import add_introspection_rules 
from lib.thumbs import ImageWithThumbsField 

add_introspection_rules(
    [ 
     (
      (ImageWithThumbsField,), 
      [], 
      { 
       "verbose_name": ["verbose_name", {"default": None}], 
       "name":   ["name",   {"default": None}], 
       "width_field": ["width_field", {"default": None}], 
       "height_field": ["height_field", {"default": None}], 
       "sizes":  ["sizes",  {"default": None}], 
      }, 
     ), 
    ], 
    ["^core/.fields/.ImageWithThumbsField",]) 

यह त्रुटियों मैं receieve है? मैं क्या गलत कर रहा हूं?

उत्तर

17

मुझे मिल गया! ["^core/.fields/.ImageWithThumbsField",]

इस के लिए

: :)

मैं इस बदल ["^lib\.thumbs\.ImageWithThumbsField",]

इस पूरी लाइन Django फ़ील्ड प्रकार का अजगर रास्तों में से एक नियमित अभिव्यक्ति (यह फिर से पढ़ें, लंबे वाक्य) है ।

दक्षिण फ़ील्ड नाम ImageWithThumbsField पर ठोकर दिया गया था जिसे lib.thumbs पथ में घोषित किया गया था। मैंने उसे गलत रास्ता दिया, इसलिए दक्षिण अभी भी नहीं जानता था कि इस क्षेत्र पर ठोकर खाने के दौरान क्या करना है।

एक बार जब मैंने उसे सही रास्ता दिया, तो उसे पता चला कि एक बार जब वह मैदान में पहुंचा तो उसे कैसे संभालना है।

+0

अभी तक जवाब स्वीकार नहीं कर सकता है, http://StackOverflow.com कहता है कि मुझे ऐसा करने से 2 दिन पहले इंतजार करना होगा। –

+4

शायद यह सवाल बहुत अधिक ध्यान देने के लिए बहुत विशिष्ट है, लेकिन सिर्फ यह पता है कि आपने मेरा दिन बचाया है। मुझे समाधान तक पहुंचने में घंटों लगेंगे, और यह पूरी तरह से चाल है। एक sidenote के रूप में, मेरे लिए क्या काम किया ["^ myapp.thumbs.ImageWithThumbsField",] क्योंकि मेरे thumbs.py myapp dir के अंदर है। चीयर्स! – rlafuente

+0

एनपी। मदद करने में खुशी। :) –

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