Django application for GenericForeignKey
Project description
Description
‘django-generic-fk’ is essentially just a collection of widgets and mixin for easy use GenericForeignKey in Django admin.
Install
- ::
pip install generic-fk
Usage
Mixin
In file admin.py:
from django.contrib import admin
from apps.models import SomeModel
from generic_fk.mixins import ModelAdminMixin
class SomeModelAdmin(ModelAdminMixin, admin.ModelAdmin):
pass
admin.site.register(SomeModel, SomeModelAdmin)
Widget
In file admin.py:
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)
try:
model = self.instance.content_type.model_class()
model_key = model._meta.pk.name
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),
admin_site=admin.site
)
class Meta:
model = SomeModel
widgets = {
'content_type': ContentTypeSelect
}
class SomeModelAdmin(admin.ModelAdmin):
form = SomeModelForm
admin.site.register(SomeModel, SomeModelAdmin)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
generic-fk-0.1.1.tar.gz
(3.8 kB
view details)
File details
Details for the file generic-fk-0.1.1.tar.gz.
File metadata
- Download URL: generic-fk-0.1.1.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdfb362b1d9c1614d9f7653a62701a3f6623dd91bfccd9d9a2d907447d7ffcfe
|
|
| MD5 |
dc6a1661171883858595d5bb21db10ee
|
|
| BLAKE2b-256 |
a411a5c0e3cf26f4d0c8ba55a33c8bdca0b934d3388d4d0a5ed5352b7550b739
|