如何在Django字段中存储多个时间?

2024-04-29 13:50:37 发布

您现在位置:Python中文网/ 问答频道 /正文

在这种情况下,我必须为一行存储多个值。例如,假设我正在创建一个医生预约模型来存储该医生的姓名和该医生的可用时间

doctor_name | available_timing

ABC | 7:00-11:00, 17:00-22:00

我正在考虑像这样使用JSON字段

from django.db import models
from django.contrib.postgres.fields import JSONField

class DoctorAppointment(models.Model):
    name = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100)
    available_timing = models.JSONField()

有没有更好的办法来处理这样的问题


Tags: djangonamefrom模型importmodels时间情况
2条回答

如果您不想为此只创建另一个模型(如果没有特定的代码规则,这是不必要的),您可以简单地将值数组作为字符串存储在CharField中

import ast    
timings = ['20:10-20:50', '21:30-22:00']
timings_str = str(timings)
#data saving code

当需要从字符串中提取数组时

ast.literal_eval(timings_str)

请注意,在这种情况下,以简单的方式筛选值的可能性是有限的,但始终可以使用正则表达式

然后,您应该使用数组类型或创建一个单独的表,并在其中设置一个omany relation,IMHO

相关问题 更多 >