当前位置: 首页 > 知识库问答 >
问题:

django models请求获取id错误房间匹配查询不存在

宋博易
2023-03-14

我有两个模型,当我要求的时候。POST. get('room_id')或('id')我得到一个错误房间匹配查询不存在.如何解决这个问题?帮我一把


    class Room(models.Model):
        status = models.BooleanField('Status',default=True)
        name = models.CharField('Name', max_length=100, unique=True)

    class Book(models.Model):
        date = models.DateTimeField('Created',auto_now_add=True)
        from_date = models.DateField('Check-in')
        to_date = models.DateField('Check-out')
        room = models.ForeignKey(Room, related_name='booking')

我需要详细的房间请求获取id,预订日期范围(从\u日期到\u日期)

def room_detail(request,pk):
    room = get_object_or_404(Room,pk=pk)
    if request.method == 'POST':
        form = BookForm(request.POST,room=room)
        if form.is_valid():
            s = form.save(commit=True)          
            s.save()
            return redirect(request.path)
    else:
        form = BookForm()

    #roomid = Room.objects.values('id')
    type = request.POST.get('id') # or get('room_id')
    rooms = Room.objects.get(id=type)

    start_dates = rooms.booking.values_list('from_date',flat=True)
    end_dates = rooms.booking.values_list('to_date',flat=True)
    dates = [start + timedelta(days=i) for start, end in zip(start_dates,end_dates) for i in range((end-start).days+1)]

    c = {}
    c['form'] = form
    return render_to_response('rooms_detail.html',c)

请帮助我,提前谢谢

共有3个答案

宦砚
2023-03-14
if request.method == 'POST':
    form = BookForm(request.POST,room=room)
    if form.is_valid():
        type = request.POST.get('id')
        rooms = Room.objects.get(id=type)
        object = form.save(commit=True)          
        object.save()
        return redirect(request.path)
危卜鹰
2023-03-14

您正在查看request.POST,即使request.method不等于'POST'。这将不起作用,因为当请求不是HTTP post时,请求的post成员为空。

呼延光明
2023-03-14

移动你的线路

#roomid = Room.objects.values('id')
type = request.POST.get('id') # or get('room_id')
rooms = Room.objects.get(id=type)

在post方法内部。

if request.method == 'POST':
    form = BookForm(request.POST,room=room)
    if form.is_valid():
        #roomid = Room.objects.values('id')
        type = request.POST.get('id') # or get('room_id')
        rooms = Room.objects.get(id=type)
        s = form.save(commit=True)          
        s.save()
        return redirect(request.path)
 类似资料:
  • 我终于将我的项目发布到生产级别,突然间我遇到了一些在开发阶段从未处理过的问题。 当用户发布一些操作时,我有时会得到以下错误。 真正让我沮丧的是,该项目在本地环境中运行良好,而且数据库中确实存在匹配的查询对象。 现在我怀疑用户正在访问数据库,而数据库是保留给其他用户的,但是没有办法证明我的论点,也没有任何解决方案。 以前有人有过这样的问题吗?对如何解决这个问题有什么建议吗? 非常感谢你提前的帮助。

  • 问题内容: 我已经在Django中实现了密码恢复功能。用我的方法,新密码将发送到他输入的电子邮件ID。当我提供正确的电子邮件(数据库中存在的电子邮件ID)时,它的工作正常。但是,当我提供不在数据库中的电子邮件ID时,就会出现此错误“ DoesNotExist位于/​​ forgotPassword / UniversityDetails匹配查询不存在。”。有人可以解决这个问题吗?将在此处粘贴我的代

  • 我正在尝试捕获异常,但无效。以下是我视图中的代码: 我还尝试了:“除了act_edit.DoesNotExist:”但错误仍然存在“活动匹配查询不存在”。你知道吗? 谢谢

  • 我使用的是django-allauth,我用以下细节配置了: 我设置了(因为我将默认站点更改为) 在settings.py中: 当我去: 我得到: 我做错了什么?

  • 说明 获取叫车请求id,没有id无法叫车 请求地址 /v1/order/Create/orderId 支持格式 {url}?k1=v1&k2=v2&k3=v3&... HTTP请求方式 Get 是否需要登录 是 关于登录授权,参见 如何登录授权 访问授权限制 暂无 请求参数 名称 类型 必选 描述 client_id string yes 申请应用时分配的AppKey access_token s

  • 问题内容: 当我想使用get()函数选择对象时 如果get函数不返回查找值,则“不存在匹配查询”。发生错误。 如果我不需要此错误,我将使用try和except函数 但是我认为这不是自使用以来最好的方法 请推荐一些想法或代码示例来解决此问题 问题答案: 这取决于你不存在时要执行的操作。 那里get_object_or_404: 在给定的模型管理器上调用get(),但是它引发Http404而不是模型的