将时间戳存储到数据库

时间:2019-06-19 13:37:34

标签: django django-models django-rest-framework django-forms django-views

我正在为自由职业者创建一个基于Django Web的应用程序,向他们支付在项目上工作的小时数,并为每周工作生成每周报告,为此我需要工作邮票,该如何实施?

我想创建一个启动计时器和停止计时器的按钮,以记录启动计时器和结束计时器的时间戳吗?

我有一个扩展到Freelancer和雇用Freelancer的人的用户模型。我该如何实现?

我在哪里编辑时间戳模型?

我有这个模特

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)

1 个答案:

答案 0 :(得分:1)

这个问题有点笼统,我不确定它与时间戳有什么关系。但是您可能会想到一个“ 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;那么您就可以轻松地查询某项工作的总时间,并计算出总费用。

(请注意,您可能需要重新考虑模型,特别是将项目详细信息与租用者分开,否则每个租用者只能创建一个项目。)