Je crée un site de site d'offres d'emploi, où tous les travaux sont affichés dans une liste et chacun est un lien qui mène à une page affichant plus d'informations sur le travail.Un objet clé étranger a-t-il une valeur d'identifiant unique?
Je les modèles suivants:
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
# Create your models here.
class Employer(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
def __str__(self):
return self.user.first_name
@receiver(post_save, sender=User)
def create_employer(sender, instance, created, **kwargs):
if created:
Employer.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_employer(sender, instance, **kwargs):
instance.employer.save()
class Job(models.Model):
poster = models.ForeignKey(Employer, on_delete=models.CASCADE)
job_title = models.CharField(max_length=50)
establishment_name = models.CharField(max_length = 50)
address = models.CharField(max_length = 50)
state = models.CharField(max_length = 20)
zip_code = models.CharField(max_length = 10)
def __str__(self):
return self.job_title + " - " + self.establishment_name \
+ ", " + self.poster.user.first_name + " " +self.poster.user.last_name
views.py:
def index(request):
jobs = Job.objects.all
return render(request, 'core/index.html', {'jobs' :jobs })
index.html, les emplois disponibles sont répertoriés comme si:
<table>
<tbody>
{% for job in jobs %}
<tr>
<td><a href="#">{{ job.job_title}} - {{ job.establishment_name }}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
Je veux ceux-ci sont des liens cliquables, qui amèneront l'utilisateur à une autre page en leur donnant plus de détails sur le travail. Je pense que j'ai besoin d'une certaine valeur d'identifiant pour Job
objets pour rendre cela possible, mais je peux me tromper. Est-ce que quelqu'un sait comment s'y prendre? Note: J'ai fait quelque chose de similaire avec les ID utilisateur avant: url(r'^claim/(?P<user_id>[0-9]+)/$', views.ClaimView.as_view(), name = "claim"),
, mais comment le ferais-je avec Job
objets?
très perspicace, merci! –