Skip to main content

Django application for GenericForeignKey

Project description


‘django-generic-fk’ is essentially just a collection of widgets and mixin for easy use GenericForeignKey in Django admin.


pip install generic-fk



In file

from django.contrib import admin

from apps.models import SomeModel
from generic_fk.mixins import ModelAdminMixin

class SomeModelAdmin(ModelAdminMixin, admin.ModelAdmin):
    pass, SomeModelAdmin)


In file

from django.contrib import admin
from django.contrib.admin.widgets import ForeignKeyRawIdWidget
from django.core.exceptions import ObjectDoesNotExist
from django.db.models import ManyToOneRel
from django import forms

from apps.models import SomeModel
from generic_fk.widgets import ContentTypeSelect

class SomeModelForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(SomeModelForm, self).__init__(*args, **kwargs)
            model = self.instance.content_type.model_class()
            model_key =
        except (AttributeError, ObjectDoesNotExist):
            model = self.fields['content_type'].queryset[0].model_class()
            model_key = 'id'
        self.fields['object_id'].widget = ForeignKeyRawIdWidget(
            rel=ManyToOneRel(model, model_key),

    class Meta:
        model = SomeModel
        widgets = {
            'content_type': ContentTypeSelect

class SomeModelAdmin(admin.ModelAdmin):
    form = SomeModelForm, SomeModelAdmin)

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
generic-fk-0.1.1.tar.gz (3.8 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page