python - 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 分配给该表。我无法弄清楚为什么它告诉我这个变量不存在。
解决方案
推荐阅读
- arrays - 在C中对数组进行排序(边缘的小元素,中间的大元素)
- azure - Azure Application Insights 标记未显示在成本分析中
- android - 使用 Jetpack 片段导航时水平布局混乱
- css - 具有自定义颜色和间距的 Bootstrap 4 导航栏居中和样式
- android-studio - 如何在android studio中打开asset studio?
- mysql - 引起:java.sql.SQLException:无法添加外键约束
- java - 使用jsoup解析带有多个孩子的xml
- python - Pandas - 对如何操作数据框感到困惑
- r - 按多个变量分组的汇总表,按列而不是行分组
- julia - 如何在 Julia 中将字符转换为字符串?