2013-12-07 21 views
18

Bu yüzden bir tabloya iki sütun ekleyerek geçiş yapmaya çalışıyorum. Bir startDate ve bir endDate. Django için south'u kullanarak, bu basit bir geçiş olmalıdır. Ben de bunlarla birlikte dateTimes ile diğer tabloların bir sürü var, ama neden ve burada alıyorum ve burada görmüyorum.Django South Hata: AttributeError: 'DateTimeField' nesnesinin 'model''özellik yok'

yığın izleme belirten edilir: Burada

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

Ben da taşıma modelidir: startDate ve endDate hariç

# 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() 

Tüm alanlar zaten VT var. Yani bu sütunları vermek için her şeyi kare tutmak için terminal aracılığıyla datetime.date.now() kullandığım varsayılan değerler. Sorun şu ki Güney'in schemamigration çalışması sadece iyi çalışıyor, ama gerçek göçmen barfs.

Hata gören herkes varsa, saçlarım buna değer. : P

DÜZENLEME: StackTrace dahildir:

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' 

Göç Kodu (biraz uzun olduğunu gibi ilgili kod ekleyerek):

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

Bize tüm stacktrace verebilir misiniz? ''model '' bir' AttributeError' ile bekleyeceğim her yerde göremiyorum ... – mgilson

+0

Ayrıca bir taşıma kodunu da paylaşır mısınız? Bu tür göçleri birkaç kez kullandım ve sorunsuz çalıştılar ... –

+0

Düzenlenen sorumu görün. – jaredgilmore

cevap

30

Ben benim sürümünü yükseltmek zorundaiçin south sürümü 0.8.4 sürümünde. pip kullanılıyorsa,

sudo easy_install -U South 

Veya: Bundan sonra

pip install South --upgrade 

beklendiği gibi benim göç çalıştı

aşağıdaki komutu çalıştırın zorunda kaldı.

+1

Tamlık için: Bu, 0.8.3'te düzeltilmiş gibi görünüyor: https://code.djangoproject.com/ticket/21312 – steps

İlgili konular