我有一個 React/Django 應用程序,用戶可以在其中回答多項選擇問題。我按照這個確切的順序將“choices”數組渲染到 UI 上。 { "id": 2, "question_text": "Is Lebron James the GOAT?", "choices": [ { "id": 5, "choice_text": "No", "votes": 0, "percent": 0 }, { "id": 4, "choice_text": "Yes", "votes": 1, "percent": 100 } ], }當我在開發模式下選擇一個選項時,我會向 Django 發送一個請求,以增加該選項的投票計數器,并且它將以相同的順序發回帶有更新投票的響應。當我嘗試使用 npm run build 在生產模式中選擇一個選項時,順序會被切換。 { "id": 2, "question_text": "Is Lebron James the GOAT?", "choices": [ { "id": 4, "choice_text": "Yes", "votes": 1, "percent": 50 }, { "id": 5, "choice_text": "No", "votes": 1, "percent": 50 } ] }我認為 JSON 數組的順序必須保留。誰能解釋為什么會發生這種情況?我幾乎可以肯定這個問題源自 Django。這是 Django 上的函數視圖。@api_view(['POST'])def vote_poll(request, poll_id): if request.method == 'POST': poll = Poll.objects.get(pk=poll_id) selected_choice = Choice.objects.get(pk=request.data['selected_choice_id']) selected_choice.votes += 1 selected_choice.save() poll_serializer = PollAndChoicesSerializer(poll) return Response({ 'poll': poll_serializer.data })
1 回答

汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
ordering
如果你想保持一致的順序,你需要在 Choice 模型元中設置選項。
class?Choice(Smodels.Model): ??class?Meta: ????ordering?=?['-id']
來自文檔:
警告
訂購不是免費操作。添加到訂單中的每個字段都會給您的數據庫帶來一定的成本。您添加的每個外鍵也將隱式包含其所有默認順序。
如果查詢未指定順序,則結果將以未指定的順序從數據庫返回。僅當按唯一標識結果中每個對象的一組字段排序時,才能保證特定的排序。例如,如果名稱字段不唯一,則按其排序并不能保證具有相同名稱的對象始終以相同的順序出現。
添加回答
舉報
0/150
提交
取消