Python Django | Page not found
Приложение Django не находит страницу.
views.py
from django.shortcuts import render
from .models import Equipment, Human, Ownership, Producer, Type, Status
def index(request, pk):
status_object = Status.objects.get(pk=pk)
type_object = Type.objects.filter(status_id=status_object.id).get(pk=pk)
producer_object = Producer.objects.filter(status_id=status_object.id).get(pk=pk)
human_object = Human.objects.filter(status_id=status_object.id).get(pk=pk)
equipment_object = Equipment.objects.filter(type_id=type_object.id, producer_id=producer_object.id, status_id=status_object.id).get(pk=pk)
ownership_object = Ownership.objects.filter(human_id=human_object.id, equipment_id=equipment_object.id, status_id=status_object.id).get(pk=pk)
context = {
'equipment': equipment_object,
'type': type_object,
'producer': producer_object,
'owner': human_object,
'status': status_object,
'ownership': ownership_object
}
return render(request, 'main/index.html', context)
models.py
from django.db import models
class Status(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
def get_absolute_url(self):
return f'/{self.id}'
class Equipment(models.Model):
name = models.CharField(max_length=100)
price = models.IntegerField()
status = models.ForeignKey('Status', on_delete=models.CASCADE)
type = models.ForeignKey('Type', on_delete=models.CASCADE)
producer = models.ForeignKey('Producer', on_delete=models.CASCADE)
def __str__(self):
return self.name
def get_absolute_url(self):
return f'/{self.id}'
class Producer(models.Model):
name = models.CharField(max_length=100)
country = models.CharField(max_length=50)
year_of_foundation = models.IntegerField()
status = models.ForeignKey('Status', on_delete=models.CASCADE)
def __str__(self):
return self.name
def get_absolute_url(self):
return f'/{self.id}'
class Type(models.Model):
name = models.CharField(max_length=100)
status = models.ForeignKey('Status', on_delete=models.CASCADE)
def __str__(self):
return self.name
def get_absolute_url(self):
return f'/{self.id}'
class Human(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
phone = models.CharField(max_length=50)
email = models.CharField(max_length=50)
status = models.ForeignKey('Status', on_delete=models.CASCADE)
def __str__(self):
return '{} {}'.format(self.first_name, self.last_name)
def get_absolute_url(self):
return f'/{self.id}'
class Ownership(models.Model):
human = models.ForeignKey('Human', on_delete=models.CASCADE)
equipment = models.ForeignKey('Equipment', on_delete=models.CASCADE)
status = models.ForeignKey('Status', on_delete=models.CASCADE)
start_date_of_ownership = models.DateField()
def __str__(self):
return self.start_date_of_ownership
def get_absolute_url(self):
return f'/{self.id}'
urls.py
from django.urls import path, include
from . import views
urlpatterns = [
path('<int:pk>/', views.index, name='home')
]
index.html
{% extends 'main/base.html' %}
{% block title %}
{{ title }}
{% endblock %}
{% block content %}
<h2>Main page</h2>
{% if equipment %}
{% for el in equipment %}
<h3>{{ el.equipment }}</h3>
<p>{{ el.type }}</p>
<p>{{ el.producer }}</p>
<p>{{ el.owner }}</p>
<p>{{ el.status }}</p>
<p>{{ el.ownership }}</p>
{% endfor %}
{% else %}
<h4>No data</h4>
{% endif %}
{% endblock %}
