Si vous souhaitez uniquement afficher les actifs d'un employé, vous pouvez changer la valeur par défaut admin django change_form.html. (Et vous pouvez également désactiver la ligne en premier)
Pour remplacer les modèles d'administration par défaut, copiez le dossier de modèle d'administration dans votre dossier de modèle de django local ($ {TEMPLATE_DIRS} dans votre setting.py)
et change_form.html, il y a ce bloc,
{% for inline_admin_formset in inline_admin_formsets %}
{% include inline_admin_formset.opts.template %}
{% endfor %}
qui est utilisé pour afficher les inline, et ce que vous pouvez faire ici est, ce qui rend des informations supplémentaires, comme une liste des actifs des employés actuels, à ce modèle, et placez-les ci-dessus où la position originale des inlines.
Et maintenant la question est: comment est-ce que je rends cette information supplémentaire à ce modèle? Cela peut être fait en remplaçant la fonction change_view() dans le modèle d'administration de votre employé.
Par exemple, dans votre admin.py
class EmployeeAdmin(admin.ModelAdmin):
...
def change_view(self, request, object_id, extra_context=None):
assets = Asset.objects.filter(employee=Employee.objects.get(id=object_id))
context_data = {'inlines': assets, }
return super(EmployeeAdmin, self).change_view(request, object_id, extra_context=context_data)
Et maintenant à votre change_form.html admin, utilisateur les balises de modèle pour afficher la extra_context de votre EmployeeAdmin.
par exemple,
{% for inline in inlines %}
{{ inline }}
{% endfor %}
{% for inline_admin_formset in inline_admin_formsets %}
{% include inline_admin_formset.opts.template %}
{% endfor %}
Hope this helps, ce qui est avec django 1.2.4
Merci, vous avez fait ma journée! –