2

Django1.2の新しいManyToManyadmin.TabularInlineを使用して、管理アプリに関連オブジェクトを表示しています。「ordering」プロパティを何に設定すればよいかわからない場合を除いて、うまく機能します。相互参照されたフィールド名。

例えば:

class Foo(models.Model):
    name = models.CharField(max_length=100)

class Bar(models.Model):
    title = models.CharField(max_length=100)
    foos = models.ManyToManyField(Foo)

class FooBarInline(admin.TabularInline):
    model = Bar.foos.through
    ordering = ('name', )  # DOES NOT WORK
    raw_id_fields = ('name', )  # THROWS EXCEPTION

class FooAdmin(admin.ModelAdmin):
    inlines = (FooBarInline, )

    class Meta:
        model = Foo

Foo.nameフィールドにアクセスして、インラインで注文するにはどうすればよいですか?

4

2 に答える 2

2

モデル順序付けメタ オプションは、インライン要素の順序を指定します。

class Foo(models.Model):
    name = models.CharField(max_length=100)

    class Meta:
        ordering = ('name',)

管理モデルの順序をプライマリ順序とは異なるものにする必要がある場合は、次のようにすることができます。

class Foo_Extended(Foo):
    class Meta:
        ordering = ('name',)

AdminInline モデルには Foo_Extended を使用します。

私はあなたがこれを知っていると仮定していますが、Django 1.3 は InlineAdmin モデルに注文オプションを追加しますが、Django 1.2 と言ったことは知っています

于 2011-05-12T16:27:40.457 に答える
0

上書きしてもいいと思います

ModelAdmin.formfield_for_foreignkey(self, db_field, request, **kwargs)

ModelAdmin.formfield_for_foreignkeyのドキュメントで詳細を確認できます。

于 2011-05-27T09:35:12.227 に答える