1

私は次のモデルを持っています:

class OrderData(models.Model):
    data = models.TextField()

class Order(models.Model):
    order_data = models.OneToOneField(OrderData)

注文の詳細ページの管理インターフェイスで、OneToOne フィールドをドロップ リストではなくリンクにする必要があります。

カスタム OrderAdmin を作成して解決しようとしていました。

class OrderAdmin(admin.ModelAdmin):
    readonly_fields = ('order_data',)

    def order_data(self, instance):
        return "<a href=\"/\">index</a>"

    address_report.short_description = "Order_data"
    address_report.allow_tags = True

admin.register(Order, OrderAdmin)

しかし、うまくいかないようです。

4

2 に答える 2

1

ウィジェットを定義します。

class OrderDataLinkWidget(Widget):
    def render(self, name, value, attrs=None):
        url ="/admin_url_to_use/%s"%value #or use reverse
        return "<a href='%s'>order data</a>"%(url, )

admin.py で formfield_overrides を使用します。

class OrderAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.OneToOneField: {'widget': OrderDataLinkWidget},
    }

または、OneToOneField がさらにある場合は、カスタム管理フォームを定義します

于 2013-01-26T11:43:24.840 に答える
0

これですが、私はグレープペリアプリを使用しています:

class BankAccountAdmin(admin.ModelAdmin):
    raw_id_fields = ('user', 'bank')
    related_lookup_fields = { 'user': ['user'], 'bank': ['bank'],}

それを使用したくない場合は、admin.py ではなく、forms.py でコーディングできます。

于 2013-01-26T11:35:35.620 に答える