Django Python多dictkeyvalu

2024-10-01 09:22:47 发布

您现在位置:Python中文网/ 问答频道 /正文

当我想从表中删除一个项目时,出现了一个错误。你知道吗

以下是错误消息:

"'stud_id'"

Request Method:     GET
Request URL:    http://127.0.0.1:8000/deleteBegin/?delete_id=1
Django Version:     1.7.1
Exception Type:     MultiValueDictKeyError
Exception Value:    

"'stud_id'"

Exception Location:     C:\Python34\lib\site-packages\django\utils\datastructures.py in __getitem__, line 319
Python Executable:  C:\Python34\python.exe
Python Version:     3.4.2
Python Path:    

['C:\\Users\\Pascal\\Downloads\\adt-bundle-windows-x86_64-20130917\\adt-bundle-windows-x86_64-20130917\\CurriculumGeneratorApp\\src',
 'C:\\Users\\Pascal\\Downloads\\adt-bundle-windows-x86_64-20130917\\adt-bundle-windows-x86_64-20130917\\CurriculumGeneratorApp\\src',
 'C:\\Python34\\DLLs',
 'C:\\Python34\\lib',
 'C:\\Python34',
 'C:\\Python34\\lib\\site-packages',
 'C:\\Windows\\system32\\python34.zip']

这是我删除项目时调用的views.py方法:

    def deleteBegin(request):
        if 'delete_id' in request.POST:
            s = Studiengang.objects.get(pk=request.GET['id'])
            alle_studienbeginne =         Studienbeginn.objects.filter(studiengangNr_intern=s)
            paginator = Paginator(alle_studienbeginne, 7)
            page = request.GET.get('pageBegin')
            try:
                studienbeginne = paginator.page(page)
            except PageNotAnInteger:
                # If page is not an integer, deliver first page.
                studienbeginne = paginator.page(1)
            except EmptyPage:
                # If page is out of range (e.g. 9999), deliver last page of results.
                studienbeginne = paginator.page(paginator.num_pages)
            sb = Studienbeginn.objects.get(pk=request.GET['delete_id'])
            sb.delete()
            template = loader.get_template('myapp/view.html')
    context = RequestContext(request, { 'studiengang' : s, 'studienbeginne' : studienbeginne,})
    return HttpResponse(template.render(context))

根据这一点,那就是my.html页面,delete方法与之连接。你知道吗

    <table  class="TFtable" id="generated-table" border="1" width="100%"
        style="font-size: small;">
                <tr align="center" valign="middle" style="background: #464646; " >
                    <th>SS</th>
                    <th>Beginn</th>
                    <th>Pflegen</th>
                   <th>Nach oben</th>
                   <th>Nach unten</th>
                   <th>L&ouml;schen</th>
               </tr>
                {% for sb in studienbeginne %}
               <tr align="center" valign="middle">
               <td>{{ sb.sommersemester }}</td>
               <td>{{ sb.datum }}</td>
                <td style="background-repeat: no-repeat;"><a href="/edit?id={{ sb.id }}" {% bgicon 'page_edit' %} ></a></td>
               <td style="background-repeat: no-repeat;"><div class="uporder" {% bgicon 'arrow_up' %} ></div></td>
                <td style="background-repeat: no-repeat;"><div class="downorder" {% bgicon 'arrow_down' %} ></div></td>
                <td style="background-repeat: no-repeat;"><a
                href="/deleteBegin?delete_id={{ sb.id }}"{% bgicon 'delete' %}></a></td>
              </tr>
            {% endfor %}
             </table>
            <div class="pagination">
                     <span class="step-links">
                {% if studienbeginne.has_previous %}
                        <a href="?pageBegin={{ studienbeginne.previous_page_number }}">previous</a>
                 {% endif %}

                     <span class="current">
                        Page {{ studienbeginne.number }} of {{ studienbeginne.paginator.num_pages }}.
                </span>
                {% if studienbeginne.has_next %}
                        <a href="?pageBegin={{ studienbeginne.next_page_number }}">next</a>
                {% endif %}
            </span>
    </div>

如何解决这个错误?你知道吗


Tags: dividstylerequestpagedeleteclasssb
1条回答
网友
1楼 · 发布于 2024-10-01 09:22:47

GET参数的名称是delete_id。所以换线

if 'delete_id' in request.POST:
    s = Studiengang.objects.get(pk=request.GET['id'])

if 'delete_id' in request.GET:
    s = Studiengang.objects.get(pk=request.GET['delete_id'])

相关问题 更多 >