Попытка получить данные из базы данных в django
Попытка получить данные из таблицы базы данных, Я хочу показать данные, когда пользователь нажимает на имя сотрудника, и он должен показать данные из таблицы OverTime,
Я пробовал много способов, чтобы получить его купол, но ни один из них не работал, пожалуйста, наставьте и направьте меня.
models.py
class Employee(models.Model):
user = models.ForeignKey(User, null = True, on_delete = models.CASCADE)
emp_name = models.CharField(max_length = 250, default = '')
emp_l_name = models.CharField(max_length = 250, default = '')
emp_email = models.EmailField(max_length = 250, default = '')
emp_number = models.IntegerField()
def __str__(self):
return self.emp_name
class OverTime(models.Model):
emp_user = models.ForeignKey(Employee, null = True, on_delete = models.CASCADE)
overTime = models.FloatField( blank = True, null=True)
reaion = models.CharField(max_length = 250, blank = True, null=True)
date_ot = models.DateTimeField(null = True, blank = True)
def __str__(self):
return str(self.emp_user)
urls.py
path('add_Ot/', views.add_Ot, name = 'add_Ot'),
path('add_ex/<int:pk>', views.add_Ot, name = 'add_ex'),
views.py
def add_Ot(request, pk = None):
emp = Employee.objects.filter(user=request.user)
forms = OverTimeAdd(request.GET)
detail_id = Employee.objects.filter(pk = pk)
if request.method == "GET":
if forms.is_valid():
forms.save()
messages.success(request, 'Successfully Over Time added !')
contex = {
'emp': emp,
'forms': forms,
'detail_id' : detail_id
}
return render(request, 'working/html/add_Ot.html', contex)
html
<tbody>
{% for emp in emp %}
<tr>
<td class="detail"><a href="">{{ emp.id }}</a></td>
<td class="detail"><a href="{% url 'add_ex' emp.id %}">{{emp.emp_name}}</a></td>
</tr>
{% endfor %}
</tbody>
{% for data in detail_id %}
<tr>
<th class="f head-view">{{ data.overime.date_ot}}</th>
<td class="head-view">{{data.overtime.overTime}}( in hours )</td>
<td class="head-view">{{data.overtime.reaion}}</td>
</tr>
{% endfor %}
Во-первых, ваш вопрос не совсем понятен, что вы хотите, но, как я вижу, вам нужно работать над views.py и django template также.
.
views.py:
.
Из этого
detail_id = Employee.objects.filter(pk = pk)
Измените на
detail_id = Employee.objects.get(pk = pk)
html
.
От этого
{% for emp in emp %}
do your logic....
{% endfor %}
Изменить на
{% for e in emp %}
do your logic....
{% endfor %}
а также
Примечание: Здесь не допускается итерация, так как вы получаете только один объект.