Когда я делаю пост через страницу администратора в Django, он не появляется - PullRequest
0 голосов
/ 21 марта 2019

Буквально, как название сказать ... проверить изображение. Когда я пытаюсь создать новое сообщение, в нем говорится, что я сделал это, но оно не будет отображаться ни на странице администратора, ни в 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.py

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 в приложении под названием blog, где у меня есть модель. 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'

Если вам понадобится какой-нибудь другой мой код, я опубликую его

1 Ответ

1 голос
/ 21 марта 2019

Вы на самом деле не сохраняете данные в вашем save(self) методе:

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

Вы должны вызвать метод реального сохранения, как указано в документации:

Переопределениепредопределенные методы модели

...