型号:更新时无法查看可编辑的内容

时间:2018-07-19 15:13:51

标签: django django-models django-forms django-views

可能是一个新手问题,所以请忍受。

我有一个Django表单,可以编辑模型的特定实例。我正在使用Modelforms。我可以编辑实例,但是看不到要编辑的实例的内容。

我现在正在使用视频教程来学习django,并在该教程中将instance = instance添加到ModelForm实例,然后使用form.as_p在输入框中填充值。

在我要编辑url的情况下,我的输入字段为空白。但是,无论我以新的空白形式写的内容都会更新为该对象。这里可能出了什么问题?我在这里停留了4天,所以这个问题是一个非常绝望的问题:)

我的表单类:

from django import forms
from .models import Entry
class EntryForm(forms.ModelForm):
    class Meta:
        model = Entry
        fields = ['name','type', 'date', 'description']

我的模特:

from django.db import models

class Entry(models.Model):
    name = models.CharField(max_length=200)
    type = models.CharField(max_length= 200)
    date = models.DateTimeField()
    description = models.TextField()

我的视图如下:

def update(request,pk):
    instance = get_object_or_404(Entry,pk=pk)
    if request.method == 'POST':
        form = EntryForm(request.POST or None,instance=instance )
        if form.is_valid():
            instance =form.save(commit=False)
            instance.save()
            return HttpResponseRedirect('/')      
    else:
        form = EntryForm()

    return render(request, "form.html", {"name":instance.name,'instance':instance,'form': form})

表单模板:

<form method="POST">
    {% csrf_token %}
    {{form.as_p}}

        <button class="btn btn-success" type='submit'>Submit</button>   
    </form>

1 个答案:

答案 0 :(得分:1)

您没有通过第二种情况的实例。将您的.linkhover更新为此。

views.py