首页 > 解决方案 > OneToOneField 在相关对象的实例上不存在

问题描述

我正在尝试在不同应用程序中的两个模型之间创建一对一的关系。当我尝试为该属性分配值时,它给了我错误“RelatedObjectDoesNotExist”。创建表时,没有为派对设置任何属性。创建 SeatedUser 时,我创建了关系。它告诉我 SeatedUser 没有桌子

#apps/restaurants/models.py
class Table(models.Model):
    name = models.CharField(max_length = 50)
    size = models.IntegerField()
    restaurant = models.ForeignKey(Restaurant, related_name = "tables")
    party = models.OneToOneField(SeatedUser, related_name = "table", null = True, default = None)
    createdAt = models.DateTimeField(auto_now_add = True)
    updatedAt = models.DateTimeField(auto_now = True)
    objects = RestaurantManager()

#apps/users/models.py
class SeatedUser(models.Model):
    time = models.DateTimeField(auto_now_add = True)
    member = models.OneToOneField(User, related_name = "seatUser", null = True)
    objects = DataManager()

#apps/restaurants/views.py
def assignTable(request, tableId):
    myTable = Table.objects.get(id = tableId)

    lineMembers = LineMember.objects.filter(restaurant = Restaurant.objects.get(id = request.session["restaurant"]))

    lineMember = findCorrectUser(lineMembers, myTable.size)
    if lineMember == None:
        messages.success(request, "No parties to assign to this table")
        return redirect("/restaurants/dashboard")

    seatedUser = SeatedUser(
        member = lineMember.member
    )
    seatedUser.save()
    seatedUser.restaurant.add(Restaurant.objects.get(line = lineMember))
    seatedUser.table.add(myTable)
    lineMember.delete()

    messages.success(request, f"{seatedUser.member.lastName} assigned to table {table.name}")
    return redirect("/restaurants/dashboard")

我需要将表分配给 SeatedUser,因此将 SeatedUser 分配给该表。我无法弄清楚为什么它告诉我这个变量不存在。

标签: pythondjango

解决方案


推荐阅读