我使用Django创建了一个类似网页的博客,我希望它具有“编辑”功能。我为我的博客创建了一个编辑页面(问题),但我无法将数据放入我的编辑表单(edit_issue) ,有人请帮忙吗?
view.py
def edit_issue(request, project_id,issue_id):
issue = get_object_or_404(Issue, id=issue_id)
if request.method == 'POST':
form = NewIssueForm(request.POST,instance=issue)
if form.is_valid():
issue = form.save(commit=False)
issue.author = request.user
issue.save()
return redirect('project:issue_tracker:issue_detail',project_id=project_id,issue_id=issue_id)
else:
form = NewIssueForm()
template = 'issue_tracker/issue/edit_issue.html'
context = {'form': form}
return render(request, template, context)
urls.py
from django.conf.urls import url
from django.urls import path
from . import views
app_name = 'issue_tracker'
urlpatterns =[
path('',views.list_of_issue,name='list_of_issue'),
path('<int:issue_id>/',views.issue_detail,name='issue_detail'),
path('<int:issue_id>/comment',views.add_comment,name='add_comment'),
path('new_issue/',views.new_issue,name='new_issue'),
path('<int:issue_id>/edit_issue/',views.edit_issue,name='edit_issue'),
]
forms.py
class NewIssueForm(forms.ModelForm):
class Meta:
model = Issue
fields = ('title','content','project','status')
edit_issue.py
{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
<h1>Issue Update</h1>
<form method="POST" class="Issue-form">{% csrf_token %}
{{form|crispy}}
<button type="submit" class="btn btn-success">Submit</button>
</form>
{% endblock %}
答案 0 :(得分:1)
这里看一看。
def edit_issue(request, project_id,issue_id):
issue = get_object_or_404(Issue, id=issue_id)
if request.method == 'POST':
form = NewIssueForm(request.POST,instance=issue)
if form.is_valid():
issue = form.save(commit=False)
issue.author = request.user
issue.save()
return redirect('project:issue_tracker:issue_detail',project_id=project_id,issue_id=issue_id)
else:
form = NewIssueForm(instance=issue)
template = 'issue_tracker/issue/edit_issue.html'
context = {'form': form}
return render(request, template, context)
您需要在加载编辑页面时提供实例,这在else: form = NewIsssueForm(instance=issue)