【发布时间】:2017-05-01 18:15:44
【问题描述】:
我正在使用 Django 构建一个巴士预订网站。我的桌子“座位”中有一个属性位置。它通过外键链接到总线(表)。每当创建总线时,都会创建等于总线容量的座位实例(容量由用户在总线表中定义)。我想将位置命名为 1_1、1_2、1_4、1_5、2_1、2_2、2_4、2_5 等。其中下划线之前的第一个数字代表行,下划线之后的数字代表一列。我没有使用 3,因为它是过道。
这是我的models.py
class Seat(models.Model):
class Meta:
verbose_name_plural = "Seat"
id = models.AutoField(primary_key=True,)
position = models.CharField(max_length=4)
bus = models.ForeignKey(Bus)
status = models.CharField(max_length=20, choices=(('available', 'available'), ('reserved', 'reserved'), ('unavailable', 'unavailable'),), default='Available')
def __str__(self):
return '{0}-{1}-{2}'.format((self.bus),(self.id),(self.status))
@receiver(post_save, sender=Bus)
def create_seats(sender, instance, created, **kwargs):
if created:
for seat in range (0, int(instance.capacity)):
instance.seat_set.create( )
位置的命名是这样完成的
你可以看到它在中间是空的,所以第三列没有被使用。我的问题是如何根据图表自动命名位置(就像我在创建公共汽车对象时创建座位一样),而无需进入单独的座位对象并命名位置。我希望你能得到我的问题。如果您需要更多信息,请告诉我。
【问题讨论】: