0

好吧,我想自动增加一个conversation-id不是主键的模型字段。目前,我正在使用以下几行代码,效率非常低。

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

有没有更好更有效的方法呢?

4

1 回答 1

1

您可以从这里获取最后一个对象和增量:

query = WebQuery.objects.all().order_by("-id")[0]
new_query = WebQuery.objects.create(user_id = request.user.id,
                                    sent_to = selected_users,
                                    user_query = query,
                                    date_time = date_time,
                                    conversation_id = query.conversation_id + 1)

(假设“id”是WebQuery模型的主键)

我不知道是否有办法在 Django 模型中自动执行此操作。

于 2013-08-06T06:00:20.800 回答