Попытка получить данные из базы данных в 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 %}

а также
{% for data in detail_id %}

Примечание: Здесь не допускается итерация, так как вы получаете только один объект.

Вернуться на верх