Je suis begginer chez django et en essayant d'afficher l'âge pour chaque utilisateur dans ma base d'utilisateurs.Définir l'âge dans le modèle django en utilisant datatime réelle et anniversaire avec datafield
Voici mon code:
models.py:
class Cv(models.Model):
author = models.ForeignKey('auth.User')
name = models.CharField(max_length=25, null = True)
surname = models.CharField(max_length=25, null = True)
address = models.CharField(max_length=100, blank=True)
telephone = models.IntegerField()
birth_date = models.DateField(blank=True, null=True)
email = models.EmailField(max_length=50, null=True)
skills = models.TextField(null=True)
specialization = models.CharField(max_length=30, blank=True, null=True)
interests = models.TextField(blank=True, null=True)
summary = models.TextField(blank=True, null=True)
thumbnail = models.FileField(upload_to=get_upload_file_name, blank=True)
def zapisz(self):
self.save()
def __str__(self):
return self.surname
template.html:
{% block base %}
<div class="vvv">
<h2>Base of users</h2><hr>
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>Nr.</th>
<th>Full Name</th>
<th>Specialization</th>
<th>Age</th>
<th>E-mail</th>
</tr>
</thead>
<tbody>
{% for cv in cvs %}
<tr>
<td>{{forloop.counter}}.</td>
<td><a href="{% url "proj.views.cv_detail" pk=cv.pk %}">{{cv.name}} {{cv.surname}}</a></td>
<td>{{cv.specialization}}</td>
<td>{{ cv.age }} </td>
<td>{{cv.email}}</td>
</tr>
{% endfor %}
</tbody>
</table><br>
</div>
{% endblock %}
views.py:
@login_required
def base_cv(request):
cvs = Cv.objects.filter()
for cv in cvs:
def calculate_age(self):
import datetime
return int((datetime.datetime.now() - cv.birth_date).days/365.25 )
age = property(calculate_age)
con = {
'cvs': cvs,
'age': age,
}
return render(request, 'base_cv.html', con)
et ne savent pas pourquoi les champs après le rendu et dépl aying, sont vides.
Merci pour toute aide!
Pourquoi est-ce que vous ajoutez dynamiquement cette propriété plutôt que de simplement la définir sur la classe Cv elle-même? –
Aussi, pourquoi avez-vous 'cvs = Cv.objects.filter()'? –
Je dois avoir tous les cvs sur la page – Damian