Django CharField, choices and migration -
for reason django asks me migrate randomly, when field isn't changed. migration files same.
model:
progress_choice = { ('1', '1.start'), ('2', '2.driver_arrived_pick_up'), ('3', '3.hope_in'), ('4', '4.driver_arrived_destination'), ('5', '5.end') } progress = models.charfield(max_length=20, choices=progress_choice, default=1, blank=true) migrations: 1.
class migration(migrations.migration): dependencies = [ ('api', '0031_auto_20150603_1515'), ] operations = [ migrations.alterfield( model_name='ride', name='progress', field=models.charfield(max_length=20, default=1, blank=true, choices=[('1', '1.start'), ('3', '3.hope_in'), ('4', '4.driver_arrived_destination'), ('2', '2.driver_arrived_pick_up'), ('5', '5.end')]), preserve_default=true, ), ] 2.
class migration(migrations.migration): dependencies = [ ('api', '0032_auto_20150603_1734'), ] operations = [ migrations.alterfield( model_name='ride', name='progress', field=models.charfield(default=1, max_length=20, choices=[('1', '1.start'), ('4', '4.driver_arrived_destination'), ('5', '5.end'), ('3', '3.hope_in'), ('2', '2.driver_arrived_pick_up')], blank=true), preserve_default=true, ), ]
it happened because progress_choice dict while must list or better tuple.
progress_choices = ( ('1', '1.start'), ('2', '2.driver_arrived_pick_up'), ('3', '3.hope_in'), ('4', '4.driver_arrived_destination'), ('5', '5.end'), ) charfield's choices accept iterable worked dict not preserve order every time make migrations randomly shuffled while being transformed list.
Comments
Post a Comment