【问题标题】:Django simple forum project not displaying modles on pageDjango简单论坛项目不在页面上显示模型
【发布时间】:2022-01-31 04:33:41
【问题描述】:

几周以来,我一直在研究一个简单的论坛应用程序。该项目的主要目标是尽快写一篇文章,然后显示该文章。该项目不使用用户模型。由于某种原因,当用户为他们的帖子完成表单时,他们的帖子不会显示。我想知道是否有人知道为什么会发生这种情况,或者你们是否有任何提示。

views.py

from django.shortcuts import render
from django.urls import reverse_lazy
from django.views import generic
from . import forms
# Create your views here.

class ForumForm(generic.CreateView):
    template_name = 'forums_simple/forum.html'
    form_class = forms.ForumForm
    success_url = '/'

    def form_vaild(self, form):
        self.object = form.save(commit=False)
        self.object.save()
        return super().form_vaild(form)

urls.py

from django.contrib import admin
from django.urls import path, include
from . import views

app_name = 'forums'

urlpatterns = [
    path('', views.ForumForm.as_view(), name='forum')
]

models.py

from django.db import models

# Create your models here.
class Post(models.Model):
    message = models.TextField(blank=True, null=False)
    created_at = models.DateTimeField(auto_now=True)

forms.py

from django import forms
from  . import models

class ForumForm(forms.ModelForm):
    class Meta:
        model = models.Post
        fields = ('message',)

论坛.html

{% extends "base.html" %}
{% load crispy_forms_tags %}

{% block content %}
<div class="container">
  {% for message in object_list %}
    {{ post.message }}
  {% endfor %}
</div>
<div class="container">
  <form class="forum_class" action="index.html" method="post">
    {% csrf_token %}
    {% crispy form %}
    <button type="submit" name="big-button"></button>
  </form>
</div>
{% endblock %}

【问题讨论】:

  • 你的意思是{{ post.message }}没有显示?
  • 是的,它没有出现

标签: python html django


【解决方案1】:

您需要将 object_list 添加到您的上下文中,将此添加到您的类视图中

 def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        # don't forget to import Post
        context['object_list'] = Post.objects.all()
        return context

【讨论】:

  • 我试过了,但它不起作用。我认为它没有提交表单 bc 并且成功 URL 没有注册并且页面没有注册,而不是 lode。你看到我的表格有什么问题吗?我不知道出了什么问题。
  • @EthanKoch 尝试删除 form_valid 函数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-28
  • 2010-09-29
  • 1970-01-01
  • 2013-03-18
  • 2020-03-20
相关资源
最近更新 更多