Текстовое поле формы Django не отображается - PullRequest
1 голос
/ 16 июня 2019

Я использовал модели и формы django для добавления раздела комментариев в приложение блога, однако текстовое поле формы не будет отображаться при загрузке в браузере.Загружается только кнопка отправки без текстового поля для отправки.

models.py

from django.db import models
from datetime import datetime
from django import forms

class Post(models.Model):
    title = models.CharField(max_length=140)
    body = models.TextField()
    date = models.DateTimeField("date published", default=datetime.now())

    def _str_(self):
        return self.title

class Comment(models.Model):
    post = models.ForeignKey('blog.post', on_delete=models.CASCADE, related_name='comments')
    author = models.CharField(max_length=100)
    text = models.TextField(max_length=200)
    created_date = models.DateTimeField(default=datetime.now())

    def _str_ (self):
        return self.text

forms.py

from django import forms
from django.forms import ModelForm
from .models import Comment
from django.db import models

class CommentForm(forms.ModelForm):
    class Meta:
        models = Comment
        exclude = ['post']

form = CommentForm

post.html

<div>
    <div class="container">
        <h5>New comment</h5>

        <form method="POST">
            {% csrf_token %}
            {{ form.as_p }}
            <br>
            <button class="btn" style="background-color:lightblue" type="submit">Submit Comment</button>
        </form>
    </div>
</div>

ПредставленияКомментарии, отправленные администратором через панель администратора, также сохраняются и отображаются нормально.

1 Ответ

1 голос
/ 16 июня 2019

у вас есть опечатка в forms.py

изменить models на model

from django import forms
from django.forms import ModelForm
from .models import Comment
from django.db import models

class CommentForm(forms.ModelForm):
   class Meta:
       model = Comment # changed from models
       exclude = ['post']

в views.py

вам не хватает импорта

from django.shortcuts import get_object_or_404,redirect
from .models import Post

другие изменения
в вашем models.py
в строку метод для классов __str__ не _str_

с этими изменениями я смог воспроизвести этот проект django с вашими фрагментами, который работает при публикации комментариев

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...