gpt4 book ai didi

python - ModelForm 的 Django 编辑模板未填充值

转载 作者:行者123 更新时间:2023-11-28 16:50:39 26 4
gpt4 key购买 nike


我有一个 ModelForm,我用它创建了一个 View 和模板,用于向数据库添加一个实例。我现在正在尝试将其扩展为在用户单击按钮时可编辑 - 但是当他们这样做时,表单/模板页面出现并且我收到“此字段是必需的消息”但所有字段都是空的而不是预先填充我传入的实例,但是当我将值编辑为与最初不同的值时,然后在我的数据库中更新了正确的实例。所以它传递了主键,但没有显示任何值。如果有人能告诉我我做错了什么,我将不胜感激,哦,我正在使用这篇文章 Django edit form based on add form?作为基础,所以请不要把我送到那里。

这是我的文件

模型表单

class CreditCardForm(forms.ModelForm):
class Meta:
model = CreditCard
fields = ('name_on_card','card_number','contact_number_on_card')

查看

def edit(request, id=None, template_name='article_edit_template.html'):
if id:
print "Edit Mode"
card = get_object_or_404(CreditCard, pk=id)
if card.card_owner != request.user:
raise HttpResponseForbidden()
else:
print "Create Mode"
card = CreditCard(card_owner=request.user)

if request.POST:
print "request.POST"
form = CreditCardForm(request.POST, instance=card)
if form.is_valid():
print "is_valid()"
form.save()

# If the save was successful, redirect to another page
# redirect_url = reverse(article_save_success)
return HttpResponseRedirect('/cards/')
else:
print "else"
form = CreditCardForm(instance=card)

return render_to_response(
'create_credit.html',
{'form': form,},
context_instance=RequestContext(request)
)

模板

{% include "base.html" %}

<form action="" method="post">{% csrf_token %}
<fieldset>
<legend>Required</legend>

<div class="fieldWrapper">
{{ form.name_on_card.errors }}
<label for="id_topic">Name as it appears on card:</label>
{{ form.name_on_card }}
</div>
<div class="fieldWrapper">
{{ form.card_number.errors }}
<label for="id_topic">Last 6 digits of card number:</label>
{{ form.card_number }}
</div>
</fieldset>

<fieldset>
<legend>Optional</legend>
<!-- This is for Credit Card's Only -->
<div class="fieldWrapper">
{{ form.contact_number_on_card.errors }}
<label for="id_topic">Institution contact number: 1-</label>
{{ form.contact_number_on_card }}
</div>
</fieldset>
<p><input type="submit" value="Save"></p>
</form>

网址

    url(r'^new/credit/$', views.edit, {}, 'crds_newCredit'),
url(r'^edit/credit/(?P<id>\d+)/$', views.edit, {}, 'crds_editCredit'),

最佳答案

@xizor 使用链接而不是按钮来重定向到编辑表单,因为使用按钮您可能正在向 View 发送帖子。

PS:请原谅我的英语,如果您认为合适,请编辑此答案以使其更有用。

关于python - ModelForm 的 Django 编辑模板未填充值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8098312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com