在django中编辑模型实例

时间:2016-05-12 22:48:51

标签: python django

我已经看过很多关于这个的帖子,我怀疑我的模板中有些东西已经关闭了?我正在重定向到正确的URL,但页面上没有任何数据。我已经阅读了文档,并查看了多个SO问题,我显然遗漏了一些东西。

点击修改按钮会重定向到看似正确的网址 - 例如,点击显示的第四个项目上的'edit'会将我重定向到/edit_item/5/,但页面为空白,因此可能会出现问题表格或模板?

这是我的表单:

class MyModelForm(ModelForm):
    class Meta:
        model = MyModel
        fields = '__all__'

        widgets = {
            'start_date': forms.widgets.SelectDateWidget(),
            'end_date': forms.widgets.SelectDateWidget()
        }

以下是我的观点:

def edit_item(request, item_id):
    this_item = items.objects.get(pk=item_id)
    form = MyModelForm(instance=this_item)
    if request.method =='POST':
        form = MyModelForm(request.POST, instance=this_item)
        if form.is_valid():
            form.save()
            return redirect('itemsbydate.html')
    else:
        form = MyModelForm(instance=this_item)
    return render_to_response('itemsbydate.html', {
        'item_id':item_id, 'form':form, 'this_item':this_item
    }, RequestContext(request))

itemsbydate.html文件:

{% for item in items %}
    <tr>
        <td>{{item.start_date}}</td>
        <td>{{item.end_date}}</td>
        <td>{{item.description}}</td>
        <td>{{item.category}}</td>
        <td>
            <form action="/edit_item/{{item_id.id}}/" method="post">
                {% csrf_token %}
                <input type="submit" value="edit item">
            </form>
        </td>
{% endfor %}

我的urls.py

  url(r'^edit_item/(?P<item_id>[0-9]+)/$', views.edit_item, name='edit_item'),

0 个答案:

没有答案