I am trying to prepopulate the SlugField but it's not happening. I use python 3.6.1 and Django 1.11.
Here is my code.
models.py
class Post(models.Model):
STATUS_CHOICES = (
('draft', 'Черновик'),
('published', 'Опубликовано'),
)
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=250, unique_for_date='publish')
author = models.ForeignKey(User,
related_name='blog_posts',
default=1,)
body = RichTextUploadingField(blank=True,
default='',
config_name='awesome_ckeditor')
publish = models.DateTimeField(default=timezone.now)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
status = models.CharField(max_length=10,
choices=STATUS_CHOICES,
default='draft')
objects = models.Manager()
published = PublishedManager()
def __str__(self):
return self.title
class Meta:
ordering = ('-publish',)
def get_absolute_url(self):
return reverse('blog:post_detail',
args=[self.publish.year,
self.publish.strftime('%m'),
self.publish.strftime('%d'),
self.slug])
And this is
admin.py
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'slug', 'author', 'publish',
'status')
list_filter = ('status', 'created', 'publish', 'author')
search_fields = ('title', 'body')
prepopulated_fields = {"slug": ("title",)}
raw_id_fields = ('author',)
date_hierarchy = 'publish'
ordering = ['-publish', 'status']
admin.site.register(Post, PostAdmin)
Site is hosted on heroku. Maybe I can auto generate slug field in another way?