У меня есть простой блог, в котором модель поста содержит поле слага, в котором предварительно указан заголовок поста. Я хотел бы знать, как обновлять этот слаг в фоновом режиме, когда пользователь обновляет заголовок сообщения в viewUpdate:
models.py
class Post(models.Model):
title = models.CharField(max_length=150)
content = models.TextField()
date = models.DateTimeField(auto_now_add=True)
author = models.ForeignKey(
CustomUser,
on_delete=models.CASCADE
)
slug = models.SlugField(unique=True)
def get_absolute_url(self):
return reverse('post_detail', kwargs={'slug': self.slug})
def save(self, *args, **kwargs):
self.slug = self.slug or slugify(self.title)
super().save(*args, **kwargs)
urls.py
urlpatterns = [
path('post/<slug:slug>/', views.PostDetailView.as_view(), name='post_detail'),
]
views.py
class PostUpdateView(UpdateView):
model = Post
fields = ['title', 'content', 'tags']
Я предполагаю, что мне нужно добавить что-то еще в view.py, чтобы обновить слаг, но после нескольких часов, погуглив его, я мог быне найти его.
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Это довольно простой вопрос, поэтому я не уверен, должен ли я предоставить что-то еще.