Я бы хотел в своем шаблоне user_profile. html фильтровать только предложения о работе, относящиеся к категории.1, но здесь он ничего не отображает. Я не могу понять, есть ли ошибка на моих моделях или шаблоне. Таким образом, в шаблоне это будет что-то вроде «если оценка пользователя> 1, то отобразить все предложения о работе, которые связаны с этим тестом». Если вы пройдете викторину Data Science, вы должны увидеть только предложения категории Data Science.
Надеюсь, я четко описал проблему. Я работал над этой проблемой несколько дней и до сих пор не могу ее решить.
core / user_profile. html
{% extends 'base.html'%}
{% block content %}
{% for category,score in categories_scores %}
<div class="card">
<div class="card-header">
{{ category.1 }} Score
</div>
<div class="card-body">
<h5 class="card-title">CONGRATS!</h5>
<p class="card-text"> Here your SCORE: </p>
<a href="#" class="btn btn-primary">{{ score }}</a>
{% if score > 1 %}
{% if request.user == user %}
<br>
<br>
<div class="progress">
<div class="progress-bar bg-success" role="progressbar" style="width: 99%" aria-valuenow="99" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<p class="card-text"> Congratulations! Now you can apply to:</p>
<br>
{% for job in jobs %}
{% if category.1 == job.categoria %}
<div id="accordion">
<div class="card">
<div class="card-header" id="headingOne">
<h5 class="mb-0">
<button class="btn btn-link" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
{{job.posizione}} <strong> {{job.nome_azienda}} </strong>
</button>
</h5>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion">
<div class="card-body">
<ul>
<li> {{job.descrizione}} </li>
<li> {{job.email_referente}} </li>
</ul>
</div>
</div>
</div>
{% endif %}
{% endfor %}
{% endif %}
{% else %}
<br>
<br>
<div class="progress">
<div class="progress-bar bg-warning" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<p class="card-text"> Still not meet the requirements to apply, keep going! </p>
{% endif %}
</div>
</div>
<br>
{% endfor %}
{% endblock content %}
jobs / models.py
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
LAVORO_CHOICES = (
('datascience', 'DataScience'),
('productowner', 'ProductOwner'),
('businessanalyst', 'BusinessAnalyst'),)
# declaring a Student Model
class post_job(models.Model):
posizione= models.CharField(max_length=20)
descrizione= models.TextField(max_length=60)
requisiti= models.TextField(max_length=60)
nome_azienda= models.CharField(max_length=20, default=' inserisci nome')
email_referente= models.CharField(max_length=20, default='inserisci email')
categoria = models.CharField(
max_length = 20,
choices = LAVORO_CHOICES,
default = 'datascience'
)
def __str__(self):
"""String for representing the MyModelName object (in Admin site etc.)."""
return self.posizione
jobs / views.py
from django.shortcuts import render
from .models import post_job
from .forms import post_jobModelForm
from django.http import HttpResponse
# Create your views here.
def viz_job(request):
jobs = post_job.objects.all()
return render(request,'jobs/jobs.html',{'jobs': jobs})
quiz / models.py
from django.contrib.auth.models import User
from django.db import models
# Create your models here.
class Questions(models.Model):
CAT_CHOICES = (
('datascience', 'DataScience'),
('productowner', 'ProductOwner'),
('businessanalyst', 'BusinessAnalyst'),
)
question = models.CharField(max_length = 250)
optiona = models.CharField(max_length = 100)
optionb = models.CharField(max_length = 100)
optionc = models.CharField(max_length = 100)
optiond = models.CharField(max_length = 100)
answer = models.CharField(max_length = 100)
catagory = models.CharField(max_length=20, choices = CAT_CHOICES)
student = models.ManyToManyField(User)
class Meta:
ordering = ('-catagory',)
def __str__(self):
return self.question