DoesNotExist в /nuevo/ Профиль, соответствующий запросу, не существует

Простите, я совсем новичок в Django и Python, делаю школьный проект, я делал вход по умолчанию с помощью python, он создает пользователей и делает вход, пока все хорошо. Когда я вхожу с правами администратора, я могу ввести "html.html" без проблем и представление запускается и делает запросы в базу данных, проблема в том, что когда я вхожу с профилем, отличным от администратора, я получаю это сообщение

DoesNotExist в /nuevo/

Профиль, соответствующий запросу, не существует.

Метод запроса: GET

Я думаю, что проблема заключается в этом запросе

query = Profile.objects.get(pk=request.user.pk)

Что я хотел, так это чтобы пользователь, который вошел в систему, отправил меня работать над своей базой данных, я не знаю, что еще можно сделать :( вот мои модели

from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone

# Create your models here.

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    image = models.ImageField(default='batman.png')
    equip = models.CharField(max_length=1500,default=0)
    pokemon1 = models.CharField(max_length=1500,default=0)
    pokemon2 = models.CharField(max_length=1500,default=0)
    pokemon3 = models.CharField(max_length=1500,default=0)
    pokemon4 = models.CharField(max_length=1500,default=0)
    pokemon5 = models.CharField(max_length=1500,default=0)
    pokemon6 = models.CharField(max_length=1500,default=0)
    

    def __str__(self) -> str:
        return f'Perfil de {self.user.username}'



class Post(models.Model):
    user=models.ForeignKey(User, on_delete=models.CASCADE,related_name='posts')
    timestamp = models.DateTimeField(default=timezone.now)
    content = models.TextField()

    class Meta:
        ordering = ['-timestamp']

    def __str__(self):
        return f'{self.user.username}:{self.content}'


мои взгляды

моя html-страница

    {% extends 'social/layout.html'%}
{% load static %}
{% block content %}
<link href='https://fonts.googleapis.com/css2?family=Roboto+Mono&display=swap' rel='stylesheet'>
<link href="{% static '/styles.css' %}" rel="stylesheet" />
{% if poke_data %}
    <center>    
        <div id="contenedor">
            <div id="contenidos">
                {% for poke_data in poke_data %}
                    <div class="poke-card">
                        <div  class="img-container">
                            <img  class="poke-img" src={{poke_data.sprites}}>
                        </div>
                        <div>{{ poke_data.name}}</div>
                        <div>ID:{{poke_data.id}}</div>
                        <div>{{poke_data.types}}</div> 
                        <div>{{poke_data.types2}}</div>
                    </div>
                {% endfor %}
                
            </div>
        </div>
    </center>
    <center>    
        <div id="contenedor">
            <div id="contenidos">
                {% for poke_data2 in poke_data2 %}
                    <div class="poke-card">
                        <div  class="img-container"><img  class="poke-img" src={{poke_data2.sprites}}></div>
                        <div>{{ poke_data2.name}}</div>
                        <div>ID:{{poke_data2.id}}</div>
                        <div>{{poke_data2.types}}</div>
                        <div>{{poke_data2.types2}}</div>
                    </div>
            {% endfor %}
            </div>
        </div>
    </center>

{% endif %}

{% endblock %}

настройки

Извините за беспорядок в моем коде, я только учусь программировать, надеюсь, вы сможете мне помочь, большое спасибо.

query = Profile.objects.get(pk=request.user.pk)

Этот запрос не делает того, о чем вы думаете. У вас есть 2 соответствующие таблицы (Profile и User). В обеих есть pk и они, по всем признакам, не связаны между собой. Вы добавили поле OneToOneField, которое создает связь между таблицами. Запрос на самом деле становится проще, поскольку вы можете проверить пользователя профиля и проверить, совпадает ли он с request.user, следующим образом:

query = Profile.objects.get(user=request.user)
Вернуться на верх