首页 > 解决方案 > 我希望我的帖子首先显示最新的,但是当我编辑任何帖子时,它会显示在顶部,我只想要最近添加的帖子

问题描述

我希望我的帖子首先显示最新的,但是当我编辑任何帖子时,它会显示在顶部,我只想要最近添加的帖子。一切正常,但我不希望编辑后的帖子出现在列表的顶部

视图.py

def home(request):
    return render(request, 'List/home.html')


def task_list(request):
    context = {
        'posts': Post.objects.all().order_by('-date')
    }
    return render(request, 'List/task.html', context)


def edit_task(request, post_id):
    post = Post.objects.get(id=post_id)
    form = TaskForm(instance=post)
    if request.method == 'POST':
        print(request.POST)
        form = TaskForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('task')
    context = {'form': form}
    return render(request, 'List/add_task.html', context)

模型.py

from django.db import models
from django.utils import timezone


class Post(models.Model):
    Task = models.CharField(max_length=50, default='pythons')
    Detail = models.TextField(max_length=100, default='python')
    date = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.Task

     

标签: pythondjango

解决方案


您的问题是由这一行引起的:

date = models.DateTimeField(default=timezone.now)

将其更改为 auto_now_add=True

date = models.DateTimeField(auto_now_add=True)

推荐阅读