39 lines
2.2 KiB
Python
39 lines
2.2 KiB
Python
from django.db import models
|
|
from websites.models import Website
|
|
from companies.models import Company
|
|
|
|
|
|
class Position(models.Model):
|
|
POSITION_STATUS_CHOICES = [
|
|
(0, '已下架'),
|
|
(1, '正在招聘'),
|
|
(2, '已结束'),
|
|
(3, '不确定'),
|
|
]
|
|
|
|
title = models.CharField(max_length=200, verbose_name="职位名称")
|
|
nature = models.CharField(max_length=50, verbose_name="职位性质", blank=True, null=True, )
|
|
category = models.CharField(max_length=100, verbose_name="职位类别", blank=True, null=True, )
|
|
region = models.CharField(max_length=100, verbose_name="职位区域", blank=True, null=True, )
|
|
experience = models.CharField(max_length=100, verbose_name="工作经历要求", blank=True, null=True, )
|
|
education = models.CharField(max_length=100, verbose_name="学历要求", blank=True, null=True, )
|
|
salary = models.CharField(max_length=100, verbose_name="职位薪资", blank=True, null=True, )
|
|
position_status = models.IntegerField(choices=POSITION_STATUS_CHOICES, default=0, verbose_name='职位状态',
|
|
blank=True, null=True, )
|
|
description = models.TextField(verbose_name="职位描述(详情)", blank=True, null=True, )
|
|
contact_name = models.CharField(max_length=100, verbose_name="联系人姓名", blank=True, null=True, )
|
|
contact_info = models.CharField(max_length=200, verbose_name="联系方式", blank=True, null=True, )
|
|
benefits = models.TextField(verbose_name="职位福利", blank=True, null=True, help_text="可用换行或逗号分隔多条福利")
|
|
openings = models.PositiveIntegerField(verbose_name="招聘人数", default=1, blank=True, null=True,
|
|
help_text="默认为 1")
|
|
website = models.ForeignKey(Website, on_delete=models.CASCADE, related_name="positions", verbose_name="所属网站")
|
|
company = models.ForeignKey(Company, on_delete=models.CASCADE, related_name="positions", verbose_name="所属企业")
|
|
|
|
def __str__(self):
|
|
return f"{self.company.name} - {self.title}"
|
|
|
|
class Meta:
|
|
verbose_name = "职位"
|
|
verbose_name_plural = "职位列表"
|
|
unique_together = ['title', 'website', 'company']
|