Ошибка типа / невозможно распаковать неитерируемый объект NoneType (Django) ⇐ Python

Программы на Python
Anonymous
Ошибка типа / невозможно распаковать неитерируемый объект NoneType (Django)

Сообщение Anonymous »

Я пытаюсь настроить в своем проекте Django систему, в которой пользователи смогут комментировать отдельные сообщения на главной (индексной) странице. Однако у меня возникла проблема при попытке сделать так, чтобы комментарий автоматически связывался с сообщением.
Это код, который я пробовал в view.py:

Код: Выделить всё

from django.core import paginator
from django.shortcuts import render, redirect, get_object_or_404
from django.http import HttpResponse
from .models import *
from django.views.generic import ListView, CreateView, UpdateView
from django.views.generic.detail import DetailView
from .forms import *
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import login
from django.core.paginator import Paginator
from django.views import View
import random

def index(request, pk=None, *args, **kwargs):
postdata = Post_Data.objects.all()
profiledata = ProfileData.objects.all()
likedata = Like.objects.all()
dislikedata = Dislike.objects.all()
comment = PostComment.objects.all()
postid = Post_Data.objects.get(pk)

# Initialize the comment form
if request.method == 'POST':
comment_form = PostCommentForm(request.POST)
if comment_form.is_valid():
post = comment_form.save(commit=False)
post.user = request.user
post.save()
return redirect('/')
else:
comment_form = PostCommentForm()  # Create an empty form

# Pass the comment form to the template context
return render(request, 'index.html', {
'title': 'RoamTrip',
'postdata': postdata,
'profiledata': profiledata,
'likedata': likedata,
'dislikedata': dislikedata,
'comment': comment,
'comment_form': comment_form  # Make sure this is included
})
models.py:

Код: Выделить всё

from django.contrib import admin
from django.db import models
from django.urls import reverse
from django.contrib.auth.models import User
from django.contrib.auth import get_user_model
from django.conf import settings
from .validators import validate_file_extension

# Create your models here.

class Post_Data (models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,  # Set the appropriate behavior here
null=True
)
time_data = models.DateTimeField(help_text='Enter Time of Upload Here:', auto_now_add=True)
text_data = models.TextField(help_text='Type Here:')
image_data = models.ImageField(upload_to="website/media/", null=True, blank=True, help_text='Upload Image:')
video_data = models.FileField(null=True, upload_to="website/media/", blank=True, validators=[validate_file_extension])
public_data = models.BooleanField(help_text='Public?', null=True)
approval = models.BooleanField(help_text='Is this post approved?', default=True)

class PostComment(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
post = models.ForeignKey(Post_Data, on_delete=models.CASCADE, related_name='post_comment_id')
post_comment = models.CharField(max_length=500)
timestamp = models.DateTimeField(auto_now_add=True)

def __str__(self):
return f"Comment by {self.user} on {self.post}"
urls.py:

Код: Выделить всё

urlpatterns = [
path('', views.index, name='RoamTrip'),
]

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
В результате я получил эту ошибку:
TypeError: невозможно распаковать неитерируемый объект NoneType

Подробнее здесь: https://stackoverflow.com/questions/790 ... ect-django

Вернуться в «Python»