我正在python中使用django框架構建一個web應用程序。在我的應用程序中,用戶需要能夠申請工作。如何創建Django模型字段來存儲與模型相關的用戶?
我不確定如何將已在作業模型中申請作業的用戶列表保存爲字段。
這裏是我的Job.py
型號:
class Job(models.Model):
user = models.ForeignKey(User, related_name="jobs")
created_at = models.DateTimeField(auto_now_add=True)
title = models.CharField(max_length=30)
description = models.TextField()
pay = models.FloatField()
category = models.CharField(max_length=3, choices=JOB_CATEGORY_CHOICES)
#applicants =
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('jobs:detail', kwargs={
'job_pk': self.id
}
)
我需要申請人字段(這是目前註釋掉)存儲誰已經申請了這份工作的用戶。我該怎麼做呢?
爲什麼'用戶'上的OneToOne字段?這將阻止用戶應用於多個工作。 –
不,在這種情況下,您會創建另一個「申請人」對象。它意味着每個「申請人」對象只有一個用戶。 – themanatuf
用戶上的ForeignKey已經意味着「每個申請人只有一個用戶」 - 否則你需要一個ManyToManyField--而OneToOne字段的確可以爲同一用戶創建許多申請人(事實上,對我來說這實在是太驚奇了,我以爲Django會防止這種情況,並且IIRC it_did_阻止它),它至少會阻止通過user.applicant_set.all()從用戶那裏獲得應用程序。 OneToOne字段主要是爲了表達一種「是」的關係,而不是「有」。 –