Sử dụng migrations, tôi cần phải thêm trường mới (khóa ngoại) vào mô hình. Tôi biết điều đó có thể được thực hiện với:Giá trị mặc định cho khóa ngoài trong di chuyển Django.AddField
migrations.AddField(
model_name='MyModel',
name='state',
field=models.ForeignKey(null=True, related_name='mymodel_state', to='msqa_common.MyModelState'),
),
Tuy nhiên, tôi không muốn trường của tôi bị vô hiệu. Thay vào đó, tôi muốn sử dụng một giá trị mặc định cho nó, tương ứng với id của MyModelState có tên là "available" (giá trị id có thể thay đổi trong các máy khác nhau). Giá trị "sẵn có" của bảng MyModelState được chèn vào cơ sở dữ liệu trong một kịch bản di chuyển trước đó, vì vậy nó tồn tại.
Tôi đoán tôi nên làm điều gì đó như:
migrations.AddField(
model_name='MyModel',
name='state',
field=models.ForeignKey(null=False, default=available_state_id, related_name='mymodel_state', to='msqa_common.MyModelState'),
),
Câu hỏi của tôi: Làm thế nào tôi có thể nhận được available_state_id
trong kịch bản chuyển đổi của tôi?
Cảm ơn Daniel. Bạn có biết bất kỳ tài liệu nào mà quá trình này được giải thích không? – eelioss
https://docs.djangoproject.com/en/1.9/howto/writing-migrations/#migrations-that-add-unique-fields –