我有以下型号
class Reply(BaseModel):
reply_to = models.OneToOneField(
Review,
on_delete=models.CASCADE,
error_messages={'unique': 'Reply to this review already exists.'})
replied_by = models.ForeignKey(HotelUser, on_delete=models.CASCADE)
基本上Review模型是和外键联系起来的
class Review(BaseModel):
reservation = models.ForeignKey(Reservation, on_delete=models.CASCADE)
我的预订模型有房间作为外键
class Reservation(BaseModel):
room = models.ForeignKey(Room, on_delete=models.CASCADE)
和房间与外键中的酒店相连
class Room(BaseModel):
hotel = models.ForeignKey(Hotel, on_delete=models.CASCADE)
并且我有某些员工模型,以这种方式将酒店作为外键
class Staff(BaseModel):
hotel = models.ForeignKey(Hotel, on_delete=models.CASCADE)
user = models.OneToOneField(HotelUser, on_delete=models.CASCADE)
我的问题是我希望用户的回复基本上是 ->hotel 用户可以说 XYZ
是 Staff
酒店的 XYZ
。
我在 clean
方法中尝试过:
def clean(self):
if not self.replied_by.reservation.room.hotel.staff_set.filter(user=replied_by) == self.replied_by:
raiseError
但限制没有任何变化,任何帮助都会有所帮助。
答案 0 :(得分:0)
你可以使用:
self.replied_by.reservation.room.hotel.staff_set.filter(user=self.replied_by).exists()