.. contents:: 

===================
Generic Foreign Key
===================

Information
===========

Generic Foreign Key is a Django application that allows your Generic relations have a nice widget in the admin

It is distrubuted under the terms of the GNU Lesser General Public
License <http://www.gnu.org/licenses/lgpl.html>

Dependencies
============

::

  <script src="/media/js/jquery-1.2.6.min.js"></script>

Installation
============

Install in your base_site.html of django admin
----------------------------------------------

::

  <script src-"/media/js/jquery-1.2.6.min.js"></script>

In your settings.py
-------------------

Add a setting EXCLUDE_CONTENT_TYPES, with the content types to exclude. This step is not necesary, but advisable

::

  EXCLUDE_CONTENT_TYPES = (('auth', 'group'), ('auth', 'messege'), ...)


You can filter too, with this setting

::

  FILTER_CONTENT_TYPES = (('auth', 'group'), ('auth', 'messege'), ...)


If you want to a UI more friendly to select a the content

::

  SEARCH_MODELADMIN = True

And in your change_list.html overwrite extrastyle block:

::

    {% block extrastyle %}
      {{ block.super }}
      <link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/changelists.css" />
      {% if cl.formset %}
          <link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/forms.css" />
          {% url admin:jsi18n as jsi18nurl %}
          <script type="text/javascript" src="{{ jsi18nurl|default:'../../jsi18n/' }}"></script>
      {% endif %}
      {{ media }}
      {% if not actions_on_top and not actions_on_bottom %}
          <style>
          #changelist table thead th:first-child {width: inherit}
          </style>
      {% endif %}
      {{ generic_fk_media }}
    {% endblock %} 


In your ModelAdmin
------------------

Extend yout ModelAdmin with GenericAdmin

::

  class MyModelAdmin(GenericAdmin):
      ...
