当我通过Django的管理页面发帖时,它不显示

问题描述 投票:0回答:1

字面意思是标题说...检查图片。当我尝试制作新帖子它说我做了但它不会出现在管理页面而不是detail.html。

http://prntscr.com/n0pfrv

这是我的帖子模型代码

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse



class Post(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField(help_text="A short label, generally used in URLs.",default='', max_length=100)
    image = models.ImageField(default='default.jpg', upload_to='profile_pics')
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)

    class Meta:
        ordering = ['-date_posted']

    def save(self):
        slug = self.title

    def get_absolute_url(self):
        return reverse('detail', kwargs={'slug':self.slug})

    def __str__(self):
        return self.title

admin.朋友

from django.contrib import admin
from .models import Post

class PostAdmin(admin.ModelAdmin):
    list_display = ['title', 'slug', 'date_posted', 'author']
    list_filter = ['title', 'date_posted']
    prepopulated_fields = { 'slug': ('title',)}

admin.site.register(Post, PostAdmin)

应用程序中的views.py名为博客我也有模型Post

from django.contrib import messages
from . models import Post
from django.core.mail import send_mail
from django.views.generic import DeleteView, ListView


def index_view(request):
    return render(request, 'blog/index_view.html')

def blog_view(request):
    context = {
        'posts': Post.objects.all()
    }
    return render(request, 'blog/blog_view.html', context)

class PostDetailView(DeleteView):
    model = Post
    template_name = 'blog/detail.html'
    context_object_name = 'post'

如果您需要我的任何其他代码,我会发布它

django debugging blogs
1个回答
1
投票

您实际上并没有在save(self)方法中保存数据:

def save(self):
    slug = self.title
    super(Post, self).save(*args, **kwargs)

你应该调用文档中提到的真正的save方法:

Overriding predefined model methods

© www.soinside.com 2019 - 2024. All rights reserved.