2

私はcookiecutter djangoをインストールし、すべてを稼働させました。更新ビューがモデルを更新しないという問題が発生しました。フローを自分自身にリダイレクトし続けるだけです。

夢/models.py

class Dream(models.Model):

    title = models.CharField(_('dream title'), max_length=60)
    slug = models.SlugField(editable=False)
    writeup = models.TextField(default="Boilerplate")

slug フィールドは、オブジェクトの保存時にタイトルから作成されます。

夢/urls.py

url(
    regex=r'^$',
    view=views.DreamListView.as_view(),
    name='list'
),

url(
    regex=r'^(?P<slug>[\w.@+-]+)/$',
    view=views.DreamDetailView.as_view(),
    name='detail'
),

url(
    regex=r'^(?P<slug>[\w.@+-]+)/update/$',
    view=views.DreamUpdateView.as_view(),
    name='update'
),

夢/views.py

class DreamListView(ListView):
    model = Dream

    queryset = Dream.objects.all().filter(in_production=True)
    # These next two lines tell the view to index lookups by slug
    slug_field = 'slug'
    slug_url_kwarg = 'slug'

class DreamDetailView(DetailView):
    model = Dream
    # These next two lines tell the view to index lookups by slug
    slug_field = 'slug'
    slug_url_kwarg = 'slug'

class DreamUpdateView(UpdateView):
    model = Dream

    fields =['title', 'writeup', ]

    def get_success_url(self):
        return reverse('dreams:detail', kwargs={'slug': self.get_object().slug})

    slug_field = 'slug'
    slug_url_kwarg = 'slug'

更新ビューのテンプレート

{% extends "base.html" %}
{% load static %}{% load i18n %}
{% block title %}Edit Dream - {{ dream.title }}{% endblock %}

{% block content %}


<form action="" method=”post”&gt;
  {% csrf_token %}
  {{ form.as_p }}
  <div class="control-group">
          <div class="controls">
            <button type="submit" class="btn">Update</button>
          </div>
  </div>
</form>


{% endblock %}

localhost:8000//update 経由でフォームにアクセスできます

値を変更して [更新] をクリックすると、フォームが元のデータで再表示されます。詳細ページにはリダイレクトされません。更新に失敗していると思います。失敗の原因を確認する方法はありますか?

ありがとう。

4

1 に答える 1