我正在嘗試向我的topics.html 頁(yè)面添加一個(gè)表單,以便用戶可以提交評(píng)論。當(dāng)用戶提交評(píng)論時(shí),我想顯示發(fā)表評(píng)論的人以及時(shí)間和日期(見(jiàn)圖)當(dāng)我提交數(shù)據(jù)時(shí),我收到以下錯(cuò)誤:我相信這與我沒(méi)有指定發(fā)布評(píng)論的用戶有關(guān)。而且我沒(méi)有傳遞用戶發(fā)布的當(dāng)前主題。視圖.pyfrom django.shortcuts import renderfrom django.http import HttpResponseRedirect, Http404from django.urls import reversefrom django.contrib.auth.decorators import login_requiredfrom comments.models import Commentfrom .models import Category, Entry, Topicfrom .forms import CategoryForm, TopicForm, EntryForm, CommentFormdef topic(request, entry_id): """Show entry for single topic""" topic = Topic.objects.get(id=entry_id) entries = topic.entry_set.all() comments = Comment.objects.all() if request.method != 'POST': # No comment submitted form = CommentForm() else: # Comment posted form = CommentForm(data=request.POST) if form.is_valid(): new_comment = form.save(commit=False) new_comment.user = request.user form.save() return HttpResponseRedirect(reverse('blogging_logs:topic')) context = {'topic': topic, 'entries': entries, 'comments': comments, 'form': form} return render(request, 'blogging_logs/topic.html', context)表格.pyclass CommentForm(forms.ModelForm): class Meta: model = Comment fields = ['content'] labels = {'text': ''} widgets = {'text': forms.Textarea(attrs={'cols': 80})}評(píng)論應(yīng)用程序:model.pyfrom django.db import modelsfrom django.conf import settingsfrom blogging_logs.models import Topic# Create your models here.class Comment(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1, on_delete=models.CASCADE) topic = models.ForeignKey(Topic, on_delete=models.CASCADE) content = models.TextField() date_added = models.DateTimeField(auto_now_add=True) def __str__(self): return str(self.content)
添加評(píng)論表單 Django
繁星點(diǎn)點(diǎn)滴滴
2021-06-07 01:21:04