2013-12-07 25 views
18

तो मैं इसमें दो कॉलम जोड़कर एक तालिका माइग्रेट करने का प्रयास कर रहा हूं। एक startDate और endDate। Django के लिए south का उपयोग करना, यह एक साधारण माइग्रेट होना चाहिए। मेरे पास डेटटाइम के साथ अन्य टेबल भी हैं, लेकिन कुछ कारणों से मैं यहां जा रहा हूं और इसे जारी कर रहा हूं और मुझे यह नहीं दिखाई देता है।Django दक्षिण त्रुटि: विशेषता त्रुटि: 'डेटटाइमफ़िल्ल्ड' ऑब्जेक्ट में कोई विशेषता नहीं है 'मॉडल'

स्टैक ट्रेस करते हुए कहा गया है:

AttributeError: 'DateTimeField' object has no attribute 'model' 

यहाँ मॉडल मैं पलायन कर रहा हूँ:

# Keep track of who has applied for a Job 
class JobApply(models.Model): 
    job = models.ForeignKey(Jobs) 
    user = models.ForeignKey(User) 
    # Keep track of the Developer accepted to do the work 
    accepted_dev = models.IntegerField(null=False, blank=False, default=0) 
    # If 1 (True) the User has applied to this job 
    isApplied = models.BooleanField(default=0) 
    startDate = models.DateTimeField() 
    endDate = models.DateTimeField() 

सभी startDate और endDate के अलावा खेतों पहले से ही डीबी में मौजूद हैं। तो उन कॉलम डिफ़ॉल्ट मानों को देने के लिए मैं टर्मिनल के माध्यम से सब कुछ वर्ग रखने के लिए datetime.date.now() का उपयोग करता हूं। मुद्दा यह है कि दक्षिण का schemamigration ठीक काम करता है, लेकिन वास्तविक माइग्रेशन बार्फ़।

यदि कोई भी त्रुटि देख सकता है, तो मेरे बाल इसकी सराहना करेंगे। : पी

संपादित: स्टैकट्रेस सहित:

Running migrations for insource: 
- Migrating forwards to 0004_auto__add_field_jobapply_startDate__add_field_jobapply_endDate. 
> insource:0004_auto__add_field_jobapply_startDate__add_field_jobapply_endDate 
Error in migration: insource:0004_auto__add_field_jobapply_startDate__add_field_jobapply_endDate 
Traceback (most recent call last): 
    File "./manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 399, in execute_from_command_line 
    utility.execute() 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 242, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 285, in execute 
    output = self.handle(*args, **options) 
    File "/usr/local/lib/python2.7/dist-packages/south/management/commands/migrate.py", line 111, in handle 
    ignore_ghosts = ignore_ghosts, 
    File "/usr/local/lib/python2.7/dist-packages/south/migration/__init__.py", line 220, in migrate_app 
    success = migrator.migrate_many(target, workplan, database) 
    File "/usr/local/lib/python2.7/dist-packages/south/migration/migrators.py", line 229, in migrate_many 
    result = migrator.__class__.migrate_many(migrator, target, migrations, database) 
    File "/usr/local/lib/python2.7/dist-packages/south/migration/migrators.py", line 304, in migrate_many 
    result = self.migrate(migration, database) 
    File "/usr/local/lib/python2.7/dist-packages/south/migration/migrators.py", line 129, in migrate 
    result = self.run(migration, database) 
    File "/usr/local/lib/python2.7/dist-packages/south/migration/migrators.py", line 113, in run 
    return self.run_migration(migration, database) 
    File "/usr/local/lib/python2.7/dist-packages/south/migration/migrators.py", line 83, in run_migration 
    migration_function() 
    File "/usr/local/lib/python2.7/dist-packages/south/migration/migrators.py", line 59, in <lambda> 
    return (lambda: direction(orm)) 
    File "/home/jared/Desktop/School/insource/insource/migrations/0004_auto__add_field_jobapply_startDate__add_field_jobapply_endDate.py", line 14, in forwards 
    keep_default=False) 
    File "/usr/local/lib/python2.7/dist-packages/south/db/generic.py", line 47, in _cache_clear 
    return func(self, table, *args, **opts) 
    File "/usr/local/lib/python2.7/dist-packages/south/db/generic.py", line 411, in add_column 
    sql = self.column_sql(table_name, name, field) 
    File "/usr/local/lib/python2.7/dist-packages/south/db/generic.py", line 706, in column_sql 
    default = field.get_db_prep_save(default, connection=self._get_connection()) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 350, in get_db_prep_save 
    prepared=False) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 911, in get_db_prep_value 
    value = self.get_prep_value(value) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 902, in get_prep_value 
    (self.model.__name__, self.name, value), 
AttributeError: 'DateTimeField' object has no attribute 'model' 

प्रवासन संहिता (प्रासंगिक कोड यह थोड़ा लंबा है के रूप में जोड़ने):

def forwards(self, orm): 
    # Adding field 'JobApply.startDate' 
    db.add_column(u'insource_jobapply', 'startDate', 
        self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2013, 12, 7, 0, 0)), 
        keep_default=False) 

    # Adding field 'JobApply.endDate' 
    db.add_column(u'insource_jobapply', 'endDate', 
        self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2013, 12, 7, 0, 0)), 
        keep_default=False) 


def backwards(self, orm): 
    # Deleting field 'JobApply.startDate' 
    db.delete_column(u'insource_jobapply', 'startDate') 

    # Deleting field 'JobApply.endDate' 
    db.delete_column(u'insource_jobapply', 'endDate') 


u'insource.jobapply': { 
    'Meta': {'object_name': 'JobApply'}, 
    'accepted_dev': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 
    'endDate': ('django.db.models.fields.DateTimeField', [], {}), 
    u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 
    'isApplied': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 
    'job': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['insource.Jobs']"}), 
    'startDate': ('django.db.models.fields.DateTimeField', [], {}), 
    'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}) 
}, 
+0

क्या आप हमें पूरा स्टैकट्रैक दे सकते हैं? मुझे '.odel'' कहीं भी नहीं दिखाई देता है क्योंकि मैं 'एट्रिब्यूट एरर' के साथ अपेक्षा करता हूं ... – mgilson

+0

क्या आप माइग्रेशन कोड भी साझा कर सकते हैं? मैंने इस तरह के माइग्रेशन का इस्तेमाल दो बार किया और उन्होंने आसानी से काम किया ... –

+0

मेरा संपादित प्रश्न देखें। – jaredgilmore

उत्तर

30

मैं की मेरी संस्करण को अपग्रेड करना पड़ा southdjango के लिए संस्करण 0.8.4 पर।

निम्न आदेश चला था:

sudo easy_install -U South 

या, यदि pip का उपयोग कर:

pip install South --upgrade 

उसके बाद, मेरे प्रवास की उम्मीद के रूप में काम किया।

+1

पूर्णता के लिए: ऐसा लगता है कि यह 0.8.3 में तय किया गया था: https://code.djangoproject.com/ticket/21312 – steps

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

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