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']"})
},
Bize tüm stacktrace verebilir misiniz? ''model '' bir' AttributeError' ile bekleyeceğim her yerde göremiyorum ... – mgilson
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 ... –
Düzenlenen sorumu görün. – jaredgilmore