2017-03-31 4 views
0

Ich habe 2 Frage Ursache wenig mit django-reversion App comfused. Ich habe eine Seite, auf der Benutzer alle Rückmeldungen auflisten können. Jede Version hat eine Schaltfläche zum Zurücksetzen.Wie wird die korrekte Version in der Django-Reversion wiederhergestellt?

1 Frage: So zeigen Sie nur einige Felder von Änderungen an. Im Moment zeigt es mir alle Felder. Ich benutze version.field_dict.items.

2 Frage: Wie man korrekte Rückstellung zu bestimmter Version macht?

Hier unten können Sie Code sehen, aber es wirft Fehler in views.py, wenn ich versuche, klicken, um den Link wiederherzustellen. Was habe ich falsch gemacht?

template.html

{% for version in versions %} 
     {% for field_name, field_value in version.field_dict.items %} 
      {{ field_name }} 
      {{ field_value }} 
     {% endfor %} 
     <a href="{% url 'project:group_task_revert' project_code=project.code group_task_code=group_task.code group_task_reversion_id=version.revision.id%}">REVERT</a> 
{% endfor %} 

urls.py:

url(r'^(?P<project_code>[0-9a-f-]+)/(?P<group_code>[0-9a-f-]+)/(?P<group_reversion_id>\d+)/$', 
     group_revert, 
     name='group_revert'), 

views.py:

def group_revert(request, project_code, group_code, group_reversion_id): 
    project = get_object_or_404(Project, pk=project_code, status='open') 
    group = get_object_or_404(Group, pk=group_code) 

    versions = Version.objects.get_for_object(group) 
    versions[group_reversion_id].revision.revert() 

    return redirect('project:project_detail', project_code=project.code) 

ERROR:

Internal Server Error: /ru/account/dashboard/projects/42442299-97dd-4d92-9ef1-880f9cdd1612/4d3d3422-2618-4d66-96f5-8f0a0b5d9bf3/21/ 
Traceback (most recent call last): 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\handlers\exception.py", line 39, in inner 
    response = get_response(request) 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\handlers\base.py", line 187, in _get_response 
    response = self.process_exception_by_middleware(e, request) 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\handlers\base.py", line 185, in _get_response 
    response = wrapped_callback(request, *callback_args, **callback_kwargs) 
    File "C:\Users\Nurzhan\PycharmProjects\RMS\project\views.py", line 198, in group_revert 
    versions[group_reversion_id].revision.revert() 
    File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\db\models\query.py", line 271, in __getitem__ 
    raise TypeError 
TypeError 

Antwort

Verwandte Themen