假設我有以下型號:Python/Django確保來自外鍵的對象將保持相同的順序嗎?
class Case:
case_name = models.CharField(max_length=200)
class SubTask:
subtask_name = models.CharField(max_length=200)
case = models.ForeignKey(Case, on_delete = models.CASCADE)
假設我創建順序 SubTask類ST1的四個對象,ST2,ST3和ST4和他們的情況屬性設置爲案例實例C。現在的問題是,當我做這個循環:
for subtask in SubTask.objects.filter(case=C):
#Do something to subtasks
是否保證通過Python或Django的是,在這個循環中的對象會出現的順序ST1,ST2,ST3,然後ST4?或者它只保證四個對象以任何順序循環播放?
注意:我確實嘗試了它們,並且它們是按實例化的順序排列的,但是我想確保這種行爲是有保證的,因爲排序很重要。
是否有任何內置的方式使用ORDER_BY使這個排序(???),或者我需要添加一個「created_at」屬性添加到模型,並將其設置爲時區.now()當對象被創建時? – AspiringMat
確保插入順序的唯一方法是添加時間戳字段,是的。請注意,如果在定義中使用'auto_now_add = True',則Django將自動設置創建日期。 –
太棒了!謝謝您的幫助 :-) – AspiringMat