django - 将时间戳存储到数据库
问题描述
我正在为自由职业者创建一个基于 Django 网络的应用程序,他们将根据他们在项目上工作的小时数获得报酬,并且每周工作都会生成每周报告,为此我需要使用时间戳,所以如何我执行它吗?
我想创建一个启动定时器和停止定时器的按钮,记录启动定时器和结束定时器的时间戳?
我有一个用户模型,它扩展到自由职业者和雇用自由职业者的人。我该如何实施?
我在哪里编辑时间戳模型?
我有这个模型
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
is_freelancer = models.BooleanField('Freelancer status', default=False)
is_hirer = models.BooleanField('Hirer status', default=False)
class Freelancer(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
hourly_rate = models.PositiveIntegerField(default=10)
education = models.TextField(default='asia')
professional_bio = models.TextField(blank=True, null=True)
professional_title = models.TextField(blank=True, null=True)
location = models.CharField(max_length=10, blank=True, null=True)
Address = models.CharField(max_length=100, blank=True, null=True)
city = models.CharField(max_length=100, blank=True, null=True)
postal_code = models.PositiveIntegerField(blank=True, null=True)
country = models.CharField(max_length=100, blank=True, null=True)
class Hirer(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
hourly_budget = models.PositiveIntegerField(blank=True, null=True)
project_title = models.CharField(max_length=100, default='hi')
project_description = models.TextField(blank=True, null=True)
job_category = models.CharField(max_length=100)
professional_bio = models.TextField(blank=True, null=True)
professional_title = models.TextField(blank=True, null=True)
location = models.CharField(max_length=10, blank=True, null=True)
Address = models.CharField(max_length=100, blank=True, null=True)
city = models.CharField(max_length=100, blank=True, null=True)
postal_code = models.PositiveIntegerField(blank=True, null=True)
country = models.CharField(max_length=100, blank=True, null=True)
解决方案
这个问题有点宽泛,我不确定它与时间戳有什么关系。但是你可能会想到一个“TimeWorked”模型,它对雇佣者和自由职业者都有外键:
class TimeWorked(models.Model):
hirer = models.ForeignKey('Hirer', on_delete=models.CASCADE)
freelancer = models.ForeignKey('Freelancer', on_delete=models.CASCADE)
rate = models.IntegerField()
start_time = models.DateTimeField(auto_now_add=True)
end_time = models.DateTimeField(null=True, blank=True)
所以你可以在一个时间段的开始创建这个类的一个实例,然后在最后填写 end_time;然后您可以轻松查询某项工作的总工作时间,并计算要计费的总时间。
(请注意,您可能需要重新考虑您的模型,尤其是将项目细节与租用者分开,否则每个租用者只能创建一个项目。)
推荐阅读
- firebase - Firestore 文档中的附加 id 字段
- java - indexOf 返回字符串中的子字符串索引
- postgresql - 如何为我的函数的每次执行在 pg_log 目录中创建一个日志文件
- postgresql - 在 AWS RDS Postgres 上,什么可能导致磁盘延迟上升而 iOP/吞吐量下降?
- nginx - NGINX 突然停止代理请求
- javascript - 发布 JSON 时出现 ValidationError
- javascript - 意思是堆栈帮助:TypeError:汽车不是函数
- android - 模拟器每次使用都会变慢
- r - 在一个热编码中每行有多个值 - 是否推荐这样做?
- javascript - 在 AngularJS 登录页面上自动填充 UserId