从标题和日期制作鼻涕虫给了我'djangodbmodelsfieldscharfield-djangodbmodelsfieldsdatetimefield'



我这样做是为了给每篇博客文章做一个段符,从标题开始:

from django.db import models
from django.utils.text import slugify

class post (models.Model):
title = models.CharField(max_length=200)
post = models.CharField(max_length=75000)
picture = models.URLField(max_length=200, default="https://i.ibb.co/0MZ5mFt/download.jpg")
show_date = models.DateTimeField()
slug = models.SlugField(unique=True, default=slugify(f"{title} {show_date}"), editable=False)

问题是,这是我得到的鼻涕虫:

http://127.0.0.1:8000/blog/blog/djangodbmodelsfieldscharfield-djangodbmodelsfieldsdatetimefield/

如何使其为http://127.0.0.1:8000/blog/blog/slug-of-title-and-date?

您试图为slug设置默认值的方式是不正确的。default必须是一个可调用的,即一个函数,或者是一个静态值。当您将其设置为slugify(f"{title} {show_date}"时,您所做的就是设置一个静态值,这是这些字段定义本身的字符串表示:

djangodbmodelsfieldscharfield-djangodbmodelsfieldsdatetimefield

它不会在保存对象时神奇地从对象中获取这些字段的值。这个答案将引导您了解用于从其他字段自动填充段塞的选项。

最新更新