Динамический URL, ориентированный на пользователя, не загружается - Django
У меня такая проблема: я могу регистрировать и вводить пользователей, но когда я просматриваю данные (как пользователь, вошедший в систему), ничего не загружается. Я долго бился над этим и просто не могу разобраться. Когда я смотрю на страницу ошибки Django, она показывает, что извлекает правильного пользователя, но не показывает его.
Проблема динамического URL для каждого пользователя - Страница ошибки Django
Вот urls.py:
from django.urls import path
from.import views
urlpatterns = [
path('',views.HomePage, name='HomePage'),
path('category/<slug:slug>', views.CategoryPage, name='image-date'),
path('<slug:slug_customer>/',views.Customer),
Вот models.py:
from django.db import models
from django.template.defaultfilters import slugify
from django_resized import ResizedImageField
from django.utils import timezone
from uuid import uuid4
from django.urls import reverse
class User(models.Model):
user_name = models.CharField(max_length=100)
#insert way to have user specific .csv link
class Category(models.Model):
title = models.CharField(null=True, blank=True, max_length=200)
class Image(models.Model):
description = models.TextField(null=True, blank=True)
altText = models.TextField(null=True, blank=True)
#ImageFields
squareImage = ResizedImageField(size=[1000, 1000], crop=['middle', 'center'], default='default_square.jpg', upload_to='DB Pictures')
#Related Fields
category = models.ForeignKey(Category, null=True, blank=True, on_delete=models.CASCADE)
Вот мой views.py:
from django.shortcuts import render
from .models import *
# Create your views here.
def HomePage(request):
categories = Category.objects.all()
context = {}
context['categories'] = categories
return render(request, 'HomePage.html', context)
def CategoryPage(request):
categories = Category.objects.all()
context = {}
context['categories'] = categories
return render(request, 'CategoryPage.html', context)
def DataPage(request, slug, slug_customer):
# customer = Category.objects.get(user_name=slug_customer)
category = Category.objects.get(slug=slug)
images = Image.objects.filter(category=category)
context = {}
context['category'] = category
context['image'] = images #sending backend of image and category to the front so it's dynamically loaded with each category and image
return render(request, 'DataPage.html', context)
def Customer(request, slug_customer):
obj = User.objects.get(slug=slug_customer)
return render(request, "CategoryPage.html")
Вот мой Github с последним выложенным кодом, если вы хотите увидеть весь проект: https://github.com/ReubenNinan/CropDrone2.git
Я думаю, что проблемы в основном лежат в LoginScreen/views.py; LoginScreen/models.py; LoginScreen/urls.py
Вы узнаете, что это работает, потому что появится страница, очень похожая на эту:
Проблема динамического URL для каждого пользователя - Django Страница категорий
Вопрос здесь:
def Customer(request, slug_customer):
obj = User.objects.get(slug=slug_customer) # THIS LINE
return render(request, "CategoryPage.html")
Модель пользователя, которую вы используете здесь, является вашей собственной пользовательской моделью, а не моделью пользователя, предоставляемой django. Чтобы использовать ее, вам нужно импортировать ее следующим образом:
from django.contrib.auth.models import User
Это должно решить вашу проблему. А также не импортируйте все сразу, используя '*' - это плохая практика, и импортируйте только то, что вам нужно.