2017-02-14 5 views
1

Ich habe gearbeitet, um ein Bearbeitungsformular, wo zeigt Daten in DB gespeichert und Benutzer kann es wie JSP-Modell und Ansicht zu bearbeiten. Wenn der Nutzer auf die Schaltfläche klickt, wird ein Formular angezeigt, aber alle relevanten Informationen in db sind bereits im Formular ausgefüllt, so dass der Benutzer alte Daten ändern kann. Sobald er auf "Senden" geklickt hat, wird er auf main umgeleitet. Es ist mir gelungen, ein Formular anzuzeigen, wenn der Benutzer auf die Schaltfläche Bearbeiten klickt, aber keine Daten abrufen konnte.Django: Daten abrufen und bearbeiten in der gleichen Form, bearbeiten an einem Ort

dies views.py

@login_required 
def update_article(request, article_no): 
    article = get_object_or_404(Article, no=article_no) 
    if request.method == "POST": 
     form = ArticleForm(request.POST, instance=article) 
     if form.is_valid(): 
      post = form.save(commit=False) 
      post.save() 
      return redirect('blog.views.detail', no=article.no) 
    else: 
     form = ArticleForm(instance=article) 
    return render(request, 'blog/update_article.html', {'form': form}) 

urls.py

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

update_article.html

{% extends 'blog/base.html' %} 
{% block body %} 

<form class="form-horizontal" role="form" action="create_article.html" method="post" enctype="multipart/form-data"> 
{% csrf_token %} 
    {% include 'blog/form_template.html' %} 
     <button type="submit" class="button-primary">submit</button> 

</form> 
<a href="{% url 'blog:home' %}" class="button button-primary">list</a> 

{% endblock %} 

detail.html Dieser Teil der Seite ist es, Benutzern senden update_article .html

<form action="{% url 'blog:update_article' item.no %}" method="post" style="display: inline;"> 
    {% csrf_token %} 
    <input type="hidden" name="no" value="{{ item.no }}" /> 
<button type="submit" class="button-primary">edit</button> 
</form> 

form_template.html

{% for field in form %} 
    <div class="form-group"> 
    <div class="col-sm-offset-2 col-sm-10"> 
     <span class="text-danger small">{{ field.errors }}</span> 
    </div> 
    <label class="control-label col-sm-2" for="title">{{ field.label_tag }</label> 
    <div class="col-sm-10">{{ field }}</div> 
</div> 
    {% endfor %} 

Antwort

0

In update_article Ansichten Pass article Objekt mit Form

return render(request, 'blog/update_article.html', {'form': form, 'article': article})

und dann in HTML-Seite

<form class="form-horizontal" role="form" action="create_article.html" method="post" enctype="multipart/form-data"> 

{% csrf_token %} 
    {% include 'blog/form_template.html' %} 
    <input class="u-full-width" type="text" name="title" value="{{article.title}}"/> 
    <textarea class="u-full-width" name="content" value="{{article.content}}"></textarea> 
     <button type="submit" class="button-primary">등록</button> 

</form> 

Ich bilde denken Dies würde Ihrem Problem helfen

auch ich denke, Ihre Aktion Link ist nicht gültig

Verwandte Themen