Django admin uninstall page acceleration

How would you speed up the action / record of deleting a Django Admin entry?

I have model B with a foreign key constraint for model A. For each entry in A, there are about 10k entries in B linked to A. Therefore, when I need to delete an entry in A, using the default value "Delete Selected" "Actions in admin , Django will take 15 minutes to request and display each deleted record in B. How can I change this so that instead of listing thousands of dependent objects, only the number of dependent objects deleted will be displayed?

+5
source share
2 answers

, django, ( , , , ).

django/contrib/admin/templates/admin/delete_confirmation.html ( django 1.2.5), 24- :

<ul>{{ deleted_objects|unordered_list }}</ul>

,

<p>{{ deleted_objects|count }} objects</p>

{% if 100 < deleted_objects|count %}
    <p>{{ deleted_objects|count }} objects</p>
{% else %}
    <ul>{{ deleted_objects|unordered_list }}</ul>
{% endif %}

( ).

django/contrib/admin/templates/admin/actions.py, SQL . .: http://docs.djangoproject.com/en/dev/topics/db/transactions/

action.py , , delete() , db. sqlite, , ~ 150 11,3 , qs.delete() 13,4 , for obj in qs: obj.delete(). (@transaction.commit_on_success ), 0,35 0,39 ( 30 ). , .

django ( , - django ) . http://www.djangobook.com/en/1.0/chapter17/#cn35

+8

Django 1.4 @drjimbob :

:

django/contrib/admin/templates/admin/delete_selected_confirmation.html

35

{% for deletable_object in deletable_objects %}
    <ul>{{ deletable_object|unordered_list }}</ul>
{% endfor %}

{% for deletable_object in deletable_objects %}
    {% if 100 < deletable_object|length %}
        <p>{{ deletable_object|length }} objects</p>
    {% else %}
        <ul>{{ deletable_object|unordered_list }}</ul>
    {% endif %}
{% endfor %} 
0

All Articles