Python 如何在django模型中访问外键值?

Python 如何在django模型中访问外键值?,python,django,django-models,Python,Django,Django Models,我正在尝试构建一个简单的队列应用程序,在这个程序中,用户可以在某个房间的队列中获取带有号码的票 我在定义Ticket.number和Room.next\u number\u之间的关系时遇到了一些问题。 票证创建中Ticket.number的值应该是Room.next\u number\u to\u take,但是,如果没有类的指定init函数,我不知道如何用“Django”语言定义它 以下是我失败的尝试(它在票据的保存方法上失败): 我以前尝试过以下方法,但也失败了: class Ticket(

我正在尝试构建一个简单的队列应用程序,在这个程序中,用户可以在某个房间的队列中获取带有号码的票

我在定义Ticket.number和Room.next\u number\u之间的关系时遇到了一些问题。 票证创建中Ticket.number的值应该是Room.next\u number\u to\u take,但是,如果没有类的指定init函数,我不知道如何用“Django”语言定义它

以下是我失败的尝试(它在票据的保存方法上失败):

我以前尝试过以下方法,但也失败了:

class Ticket(models.Model):
    request_date = models.DateTimeField(default=timezone.now)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    room = models.ForeignKey(Room, on_delete=models.CASCADE)
    number = room.next_number_to_take
    room.next_number_to_take += 1

我自己还没有试过这个代码。我认为当您更改
房间
模型的
下一个\u编号
时,该模型不会被保存。所以我又加了一行。看看它是否有效,如果您有任何错误,请与我联系

def save(self, *args, **kwargs):
    self.number = self.room.next_number_to_take
    self.room.next_number_to_take += 1 # this line is ok but you need to save it
    self.room.save() # this is the new line to add
    super(Ticket, self).save(*args, **kwargs)

这个问题我不太清楚。详细解释你想要什么do@Sagar我已经更改了问题描述没问题。如果你喜欢这个解决方案,也请投票支持我的答案。:)
def save(self, *args, **kwargs):
    self.number = self.room.next_number_to_take
    self.room.next_number_to_take += 1 # this line is ok but you need to save it
    self.room.save() # this is the new line to add
    super(Ticket, self).save(*args, **kwargs)