Каков лучший способ связать эти таблицы, извините, я новичок в Django и мне нужно немного помочь с этим, я получил 3 таблицы:
- Пользователи
- Jobs ---> имеет поле автора, которое является пользователем ...
- Прикладной
Поэтому я хочу, чтобы пользователи подали заявки на вакансии, которые они не опубликовали, и они могут подать заявку только один раз.
Итак, что я получил в данный момент, это:
class Applied(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
job = models.ForeignKey(Job, on_delete=models.CASCADE)
class Meta:
unique_together = ('userenter code here', 'job',)
Это работает, однако, если я пытаюсь подать заявку на одну и ту же работу дважды, это выдает мне ошибку.
duplicate key value violates unique constraint "job_applied_user_id_job_id_c38a42a4_uniq"
DETAIL: Key (user_id, job_id)=(1, 6) already exists.
Это моя модель:
class Job(models.Model):
title = models.CharField(max_length=100)
author = models.ForeignKey(User, on_delete=models.CASCADE)
cost = models.DecimalField(max_digits=25, decimal_places=4)
Это мой взгляд:
def apply(request, id):
print "the %s has applied " %(request.user.username)
job = Job.objects.get(pk=id)
if job.author == request.user:
messages.warning(request, 'You cannot apply to jobs you have publish')
else:
user = User.objects.get(pk=request.user.id)
applied = Applied(user = user, job = job)
if applied.not_applied_before():
applied.save()
messages.success(request, 'applied to job success')
else:
messages.info(request, 'You apply to this job already')