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']