У меня есть класс модели для моего ресурса,
class Article(db.Model):
title = models.CharField(_('title'), max_length=255, blank=False)
slug = AutoSlugField(_('slug'), populate_from='title')
description = models.TextField(_('description'), blank=True, null=True)
content = RichTextUploadingField()
Вот мой класс формы
class ArticleForm(ModelForm):
class Meta:
model = kb_models.Article
И, наконец, мой CreateView,
class CreateArticleView(generic.CreateView):
form_class = ArticleForm
model = Article
def get_success_url(self):
return "some_redirect_url"
Прямо сейчас Я настроил свои URL, как показано ниже:
path('add/', CreateArticleView.as_view(), name='create_article')
path('<slug:article>', ArticleDetailView.as_view(), name='article_detail'),
path('<slug:article>/update', UpdateArticleView.as_view(), name='update_article')
Текущий поток будет отображать форму при достижении конечной точки ресурса add/
и сохранять ресурс в базе данных только после отправки формы. После этого к статье можно получить доступ, используя слаг, сгенерированный из заголовка.
Вместо этого я хочу создать ресурс Article до его рендеринга, чтобы конечная точка add/
перенаправляла на какая-то конечная точка add/unique-uuid
, и даже когда форма не отправлена из браузера, этот пустой ресурс сохраняется, и к нему можно получить доступ позже из-за unique-uuid
.
Я думал о создании экземпляра объекта и перенаправить его в UpdateView, но у меня возникают трудности с выяснением того, как отслеживать unique-uuid
и указывать и генерируемые-uuid и slug на один и тот же ресурс. Кроме того, это похоже на обычный вариант использования, поэтому мне интересно, есть ли лучший стандартный способ сделать это.