レコードのスラッグ フィールドをオーバーライドしたい。私の見解では、add_post ページが読み込まれると、新しいレコードが自動的に作成されます。お気に入り:
def add_post(request):
post=Post(owner=request.user)
post.save()
post_id = post.id
if request.method == 'POST':
form = add_form(request.POST)
if form.is_valid():
form_title = form.cleaned_data['title']
#other fields
updated_post = Post.objects.get(id=post_id)
updated_post.title = form_title
#save other fields...
updated_post.save()
そして、models.py に次のように slug_field があります。
class Post(models.Model):
owner = models.ForeignKey(User)
title = models.CharField(max_length=100, blank=True)
#other fields...
slug = AutoSlugField(populate_form='title', unique=True)
私のviews.pyでは、行の後にpost = Post(owner=request.user)
; タイトル値がまだないため、デフォルトのスラッグ フィールド名でレコードを作成します。
しかし、ご覧のとおり、その投稿を更新しました(タイトルやその他のフィールドを追加しました)。しかし、slug フィールド自体は更新されません。それはまだデフォルトのスラッグ名です。
どうすればこれを修正できますか? それが不可能な場合は、プロジェクトから AutoSlugField を削除し、投稿 ID のみを使用します。