Ну, я хочу автоматически увеличивать поле модели conversation-id
, которое не является первичным ключом. В настоящее время я использую следующие строки кодов, которые очень неэффективны.Прирост приращения Django AutoField
web_query_data = WebQuery.objects.all()
if not web_query_data:
c_id = 0
else:
for data in web_query_data:
c_id = data.conversation_id
web_query = WebQuery.objects.create(user_id = request.user.id, sent_to = selected_users,
user_query = query,date_time = date_time, conversation_id = c_id + 1)
Это в основном получает последнее значение поля conversation_id
с помощью цикла и увеличивает его на 1.
Я пробовал использовать models.Autofield
, который требует, чтобы поле было основным. Но в соответствии с моими потребностями мне нужно вставить данные, которые иногда дублируются на conversation_id
Есть ли лучший и эффективный метод для того же самого?
Ну, есть ошибка с этим. Что, если изначально у меня нет данных в WebQuery, тогда он будет вызывать ошибку «индекс индекса вне диапазона » – PythonEnthusiast
__WebQuery.objects.aggregate (Max ('id')) __ вернет вам dict с вашим максимальным значением – Ricola3D