- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Django 构建一个巴士预订网站。我的 table “座位”中有一个属性位置。它通过ForeignKey链接到总线(表)。每当创建总线时,都会创建等于总线容量的座位实例(容量由用户在总线表中定义)。我想命名诸如 1_1、1_2、1_4、1_5、2_1、2_2、2_4、2_5 等位置。其中下划线之前的第一个数字代表行,下划线之后的数字代表列。我没有使用 3,因为它是过道。
this is my 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( )
This is how the naming of position is done
正如您所看到的,它的中间是空的,因此第三列未被使用。我的问题是如何根据图表自动命名位置(就像我在创建总线对象时创建座位一样),而不必进入单独的座位对象并命名位置。我希望你能明白我的问题。如果您需要更多信息,请告诉我。
最佳答案
此答案假设巴士可以有不同的座位布局,这意味着您需要为每种巴士类型定义座位模式。
最基本的方法是将它们定义为常量,即二维列表/数组,输入 1 表示有座位,0 表示没有座位:
#seating_patterns.py
BUS_1 = [
[1, 1, 0, 1, 1],
[1, 1, 0, 1, 1],
[1, 1, 0, 1, 1],
[1, 1, 0, 1, 1],
[1, 1, 0, 0, 0],
[1, 1, 0, 1, 1],
[1, 1, 0, 1, 1],
[1, 1, 0, 1, 1],
[1, 1, 1, 1, 1],
]
BUS_2 = [etc]
SEATING_ARRAYS = {'BUS_1': BUS_1, 'BUS_2': BUS_2}
为了使其更易于维护,您可以创建一个 SeatingPattern 模型,例如使用 ArrayField(如果您可以选择)。
否则将座位数组导入到您的模型文件中:
# models.py
from .seating_patterns import SEATING_ARRAYS
并向您的巴士模型添加一个 Seating_pattern 字段,其中包含巴士的选择元组:
class Bus(models.Model):
…
SEATING_PATTERNS = (
('BUS_1', 'BUS_1'),
('BUS_2', 'BUS_2'),
)
…
seating_pattern = models.CharField(choices=SEATING_PATTERNS, max_length=50)
并在 post_save 信号中创建正确的格式输出(1_1、1_2 等):
if created:
seating_pattern = SEATING_ARRAYS[instance.seating_pattern]
for row,seats in enumerate(seating_pattern):
for pos,seat in enumerate(seats):
if seat:
Seat.objects.create(
bus=instance,
position="{}_{}".format(str(row+1), str(pos+1))
)
关于python - 在 django 中自动给出职位名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43724155/
这个方法的作用是什么? URL aURL = new URL(myRemoteImages[position]); myRemoteImages 是一个字符串列表,有 4 个不同的变量。位置是 in
我对 Facebook API 的工作原理有初步的了解;我可以使用图形 API 来发布消息,但仅此而已。但是,我们也想发布工作。 Facebook 似乎有一个专门用于发布工作和接收申请的自定义 UI,
我正在尝试使用纯 JavaScript 编写一个简单的脚本,它会产生位置粘性效果。下面的代码对我来说效果很好。 var siteHeader = document.getElementById('si
我想在不同的机器上使用相同的作业。但是我不想每次都更改作业的配置。我可以将机器名称标签作为参数传递并在另一台机器上运行作业吗? (不同时)。 我想在将作业运行到我在配置中编写的脚本(批处理脚本)时传递
我有三个表。变化、讨论和对话。每个讨论都有一个对话集合。每个对话都是关于一个变化。然后对话在讨论中排名 1-10。你最终会得到这样的结果: Conversations{ [ id: 1,
我正在尝试使用 CodeIgniter 中内置的站点执行 cron 作业 - 我可以访问 CPanel cron 功能,任何人都可以建议使用 CPanel 设置 cron 作业的最佳方法吗? 我正在使
Sorry, the resource that you are trying to access is restricted. Please contact your LinkedIn Partne
我最近开始申请 .Net 职位。我目前在一家大型电信公司担任销售职务。我很晚才发现我喜欢编程,因此买了房子并做出了 promise ,这意味着上大学不是一个选择。 我想知道的是,作为一名自学者,找一份
下周我将面试一份使用 Spring 框架的 J2EE 工作。我在最近的几个职位中使用过 Spring,但我可能想复习一下。 应该注意什么,应该看哪些网站,刷一下? 最佳答案 我不会询问框架本身,但在哪
我是一名优秀的程序员,十分优秀!