をインライン化ジャンゴに空の値を返し、私の現在の試みで、私は2つのモデル(クライアントおよび骨折)を持っています。 Factureは、クライアントの変更ビューにTabularInlineとして表示されます。readonly_fields iはDjangoフレームワークに新しいですモデル
ファイルをダウンロードするために、各インラインファクタオブジェクトのリンクを表示する必要があります。私は骨折ファイルをダウンロードするカスタムビューを追加しましたが、それ
class Client(models.Model):
...
class Facture(models.Model):
client = models.ForeignKey(Client, on_delete=models.CASCADE)
numero = models.IntegerField(unique=True, default=rand_code)
...
とadmin.py内にリンクする方法を知らない:
class FactureInline(admin.TabularInline):
model = Facture
extra = 0
readonly_fields = ('numero', 'dl_link')
def DLFacture(self, request, obj):
...
response.write(pdf)
return response
def get_urls(self):
urls = super(FactureAdmin, self).get_urls()
from django.conf.urls import url
download_url = [
url(r'^(?P<pk>\d+)/download/$', self.admin_site.admin_view(self.DLFacture), name="download"),
]
return download_url + urls
def dl_link(self, obj):
from django.core.urlresolvers import reverse
return reverse("admin:clients_facture_download", args=[obj.pk])
admin.site.register(Facture, FactureAdmin)
class ClientAdmin(admin.ModelAdmin):
inlines = [
FactureInline,
]
admin.site.register(Client, ClientAdmin)
私は、次のエラーを取得:
を私はreverse("admin:clients_facture_change", args=[obj.pk])
に逆のURLを変更したときに
Reverse for 'clients_facture_download' with arguments '(1,)' and keyword arguments '{}' not found. 0 pattern(s) tried: []
すべてが正常に動作します
だから、ダウンロードビューを元に戻す方法を知ってくれる人がいらっしゃいますか?私が思うだろう任意のヘルプ
の順番になっています。私が使ったURLは、Facture(admin.ModelAdmin)のlist_displayで使用するとうまく動作します。私は問題がTabularInlineクラスの使用に関連していると思います。 – ppp0h
あなたが言うように、インラインクラスは 'get_urls'メソッドを持っていません。モデル管理クラスに移動する必要があります。 – Alasdair
もし私がそうするなら、どのようにしてファクセルオブジェクトpkを得ることができますか? – ppp0h