首页 > 解决方案 > 精确查找的 QuerySet 值必须限制为使用切片和

问题描述

我想在保存表单时获取或创建一个对象

我的观点

@login_required
def index(request, log_id):
    log = get_object_or_404(LogBook, pk=log_id)
    logmessages = LogMessage.objects.filter(logbook=log_id)
    logbook = LogBook.objects.get_or_create(logmessages=logmessages)
    form = CreateLogMessage(request.POST)
    if request.method == "POST":
        if form.is_valid():
            logbook.done_status = False
            logbook.save()            
            instance.save()

我的模型:

class LogMessage(models.Model):
  logbook = models.ForeignKey(LogBook)

class LogDone(models.Model):
  logmessage = models.ForeignKey(LogMessage)
  done_status = models.BooleanField(default=False, verbose_name="Status")

我从 SO 中尝试了几个答案: Django:The QuerySet value for an exact lookup must be limited to one result using slicing但它返回另一个错误

get() 返回了多个 LogMessage —— 它返回了 8 个!

这一个精确查找的 QuerySet 值必须限制为使用切片的一个结果 - Django再次返回,一个不同的错误

'int' 对象没有属性 'all'

所以我不确定我做错了什么。

标签: pythonpython-3.xdjangodjango-rest-frameworkdjango-views

解决方案


推荐阅读