Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 注释在模板中不可见,即使它们保存在数据库中_Python_Django - Fatal编程技术网

Python 注释在模板中不可见,即使它们保存在数据库中

Python 注释在模板中不可见,即使它们保存在数据库中,python,django,Python,Django,目前我的应用程序中有两个模型,一个用于上传文件,另一个用于评论。我已经知道了如何在同一个页面上实现表单,它似乎在工作,但由于某种原因,提交的评论没有显示出来,我不知道如何实现这一点。我应该在返回中提供注释,还是认为注释模型中有ForeignKey这不是必需的,并且可以通过每个文件访问注释 每个文件都有自己的注释 # Model for all uploaded files class Uploaded(models.Model): objects: models.Manager()

目前我的应用程序中有两个模型,一个用于上传文件,另一个用于评论。我已经知道了如何在同一个页面上实现表单,它似乎在工作,但由于某种原因,提交的评论没有显示出来,我不知道如何实现这一点。我应该在返回中提供注释,还是认为注释模型中有ForeignKey这不是必需的,并且可以通过每个文件访问注释

每个文件都有自己的注释

# Model for all uploaded files
class Uploaded(models.Model):
    objects: models.Manager()
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="users")
    time_uploaded = models.DateTimeField(auto_now_add=True)
    description = models.CharField(max_length=100)
    file = models.FileField(upload_to=MEDIA_ROOT)
    admintags = TaggableManager(blank=True, through=AdminTagsAll, verbose_name="Admin Tags")
    usertags = TaggableManager(through=UserTagsAll, verbose_name="User Tags")
    additional_description = models.CharField(max_length=50, blank=True)

    def __str__(self):
        return f"{self.description} {self.file}"


# Model for comments
class Comment(models.Model):
    objects: models.Manager()
    file = models.ForeignKey('Uploaded', on_delete=models.CASCADE, related_name='comments')
    text = models.TextField()

    def __str__(self):
        return self.text
HTML模板:

{% for comment in comments %}
                                            <div style="border:1px solid silver; border-radius:15px; padding:15px; margin:10px 0px;">
                                             <p class="mb-auto" style="font-size:15px;">{{ comment.text }}</p>
                                            </div>
                                        {% empty %}
                                            <div style="border:1px solid silver; border-radius:15px; padding:15px; margin:10px 0px;">
                                             <p class="mb-auto" style="font-size:15px;">No Comments</p>
                                            </div>
                                        {% endfor %}

您在哪里调用
def index
中的注释?因为正如我所看到的,
注释没有定义
您在上下文中发送注释,但是您在代码中从何处获得注释?
def index(request):
    url_parameter = request.GET.get("q")
    user = request.user
    files = Uploaded.objects.filter(user=user)
    userTags = UserTags.objects.all()
    form = FileUploadForm
    paginator = Paginator(files, 6)
    page = request.GET.get('page', 1)

    try:
        files_paginated = paginator.page(page)
    except PageNotAnInteger:
        files_paginated = paginator.page(1)
    except EmptyPage:
        files_paginated = paginator.page(paginator.num_pages)

    if url_parameter:
        filesSearch = Uploaded.objects.filter(user=user, name__icontains=url_parameter)
    else:
        filesSearch = Uploaded.objects.filter(user=user)
    context = {'form': form, 'page': page, 'files': files_paginated, 'userTags': userTags, 'comments':comments}

def add_comment_to_file(request, pk):
    file = get_object_or_404(Uploaded, pk=pk)
    if request.method == "POST":
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.file = file
            comment.save()
            return HttpResponseRedirect(reverse('index'))
    else:
        form = CommentForm()
    return render(request, 'index.html', {'form': form})