已知详情页的id,及回复内容的content,如果创建新的记录。这里需要匹配到这条回复对应的主题。一个主题详情有很多个回复,一个回复只能对应一个主题。 ItemReply.objects.create(content=content, reply_item_id=id, reply_user_id=user.id)
非常重要
遗留问题,待解决。
因为,每一条主题,带topic和user,这两项是必须要选择的,带关联性的表格如何输入。如何添加。详情页要赋值topic和user
1、如果有主题和user则全部显示出,供add时选择即可
2、如果没有则需要添加,添加后返回1,进行选择,而后将选择的值赋给这个记录,用TodoItem.objects.create()
回复后,需要在回复的后面跟上回复,而不是直接续上,
总觉得detail方法和TodoItemReplyView.as_view()可以合并。
def post(self, request):
"""
1 获取输入内容
2 赋值给ItemReply,存在2中情况:如下
1、 如果所有值都有,则创建数据记录,设置参数,确定其是否可以遍历。
在detail页面循环遍历显示,包括内容,user,时间
返回 渲染到detail页面
2、如果没有,则重定向到detail,重新输入。
返回 重定向
"""
#接收数据
content = request.POST.get('reply',0)
id = request.GET.get('id', 0)
# user_name = request.GET.get('user_name',0)
detail = TodoItem.objects.get(id=id) # get只能获取一条,filter获取的是查询集,get获取的是对象。
topic = detail.todoitem_topic
user = detail.todoitem_user
ItemReply.objects.create(content=content, reply_item_id=id, reply_user_id=user.id)
reply_message = detail.itemreply_set.order_by('-date_added')
# print(reply_message)
# print(user)
# print(detail)
n = 1
context = {
'content': detail,
'user': user,
'topic': topic,
'n': n,
'id': id,
'reply_message': reply_message # 移到detail中,因为必须要一点开详情就显示回复。
}
# 处理数据
# 返回响应结果
# 获取页面id,在该id下进行回复,是否可以合并到todo_detail中
# 回复的回复者以当前登录状态下的使用人为准。
return render(request, 'todo_detail.html', context=context)
已知topic的id,,需要在entry新增中根据外键topic创建新的entry,所以新的entry的id为外键属性(使用下划线),topic_id=topic.id.
最新推荐文章于 2024-09-07 17:17:49 发布