2017-01-19 3 views
1

なしモデルの管理インラインを持って、私はこのこれらのモデルを持っています私はアルバムを作りましたか?だから直接の関係または外部キー

私は写真のインライン化を試みてアルバム管理者にフックしようとしたとき、「アルバムには外部キーがありません」というエラーが表示されます。そこから、アルバム管理者が必要とする外部キーをリンクする方法があるはずですモデルアイテムからのコンテンツオブジェクト。

注:特にアイテム管理は必要ありません。アイテムはモデル保存後の信号で作成されます。

答えて

0

私はこれが箱の外で動作するとは思わない。しかし、例えばdjango-smart-selects-genericsのようなライブラリを使うことができます。あなたのdjangoのバージョンによっては、そこにいくつかのファイルを更新する必要があるかもしれません。

インストールで動作します:

pip install django-smart-selects-generic 

あなたはまたdjango-smart-selectsをインストールする必要があります。

次に、両方のアプリを設定に追加します。

INSTALLED_APPS = (
     ... 
     'smart_selects', 
     'smart_generic' 
     ) 

そして、あなたadmin.pyにあなたが行うことができます:

from smart_generic.form_fields import GenericChainedModelChoiceField 
from django.forms.models import ModelForm 

class TForm(ModelForm): 
    object_id = GenericChainedModelChoiceField('content_type','content_type',label=u'Content object',queryset=TargetRelation.objects.all()) 
    class Meta: 
     model = TargetRelation 
     fields = ['target','content_type'] 


class TRAdmin(admin.ModelAdmin): 
    form = TForm 

class TRInline(admin.TabularInline): 
    model = TargetRelation 
    form = TForm 

class PlanetAdmin(admin.ModelAdmin): 
    inlines=[TRInline,] 

あなたのジャンゴバージョンによっては、widgets.pyに交換する必要があるかもしれません:

によって

Media = ChainedSelect.Media 

.media = ChainedSelect.Media 

そしてsmart_selectビュー

import json as simplejson 

をし、return文を置き換えることにより、:の.py追加

return HttpResponse(json, content_type='application/json') 
+0

私はレポを参照してください、しかし、私はそのがやっているかわかりません。ドキュメントもありません。私はフォーム、ウィジェット、ビューしか見ることができません。 –

関連する問題