0

I have 2 question cause little bit comfused with django-reversion app. I have page where users can see list all of reversions. Every version has button to revert.

1 Question: How to show only some fields of changes. Right now it shows me all fields. I use version.field_dict.items.

2 Question: How to make correct revert to specific version?

Here below you can see code but it raise Error in views.py when I try to click to revert link. What I did wrong?

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
Nurzhan Nogerbek
  • 4,806
  • 16
  • 87
  • 193

1 Answers1

0

I found the answer to this question: dhango-reversion

Nurzhan Nogerbek
  • 4,806
  • 16
  • 87
  • 193