UserProfile StackedInLine / TabularInLineリニューアル
質問
読み取るための のみなさん、こんにちはと感謝。のの
私はを取り除きたいという単純な問題があると私は見ていません ネットの周りに検索するが、これはまだ達成されている例 かなりしばらくます。
私は最近、このように私のadmin.pyルックスようのUserProfileで拡張ます:
from django.contrib import admin
from django.contrib.auth.models import User
from models import UserProfile
from django.contrib.auth.admin import UserAdmin
admin.site.unregister(User)
class UserProfileInline(admin.StackedInline):
model = UserProfile
class UserProfileAdmin(UserAdmin):
# fieldsets = [
# (None, {'fields': ['image']}),
# ('Avatar', {'fields': ['text'], 'classes': ['collapse']}),
# ]
inlines = (UserProfileInline,)
admin.site.register(User, UserProfileAdmin)
このようなmodels.pyます:
from django.db import models
from django.contrib.auth.models import User
class UserProfile(models.Model):
# Required
user = models.ForeignKey(User, unique=True)
image = models.ImageField(upload_to='media/users/', blank=True, help_text="Your face")
text = models.TextField(blank=True, help_text="Write something about yourself")
In an app called users that is referred to by settings.py with:
AUTH_PROFILE_MODULE = users.UserProfile
1
は基本的に私が達成したいもの1位StackedInLineを取り除くことです その管理者で示しています。私が代わりにStackedInLineを使用する理由 TabularInLineは、そうでない場合は、私が得るためである「削除を?」の列 右と私はそれが私が希望オプショナル見つけるのいずれかに除外していますか StackedInLineで1位ナンバリングを取り除くます。
このは(赤でマーク)...それは「現実世界」のように見えるものです。
を積み上げ:を hxxp://i28.tinypic.com/2lsadkg.jpg
を表形式:を hxxp://i27.tinypic.com/4lybs.jpg
2
また。私がロードされたとき、私はフィールドセットを使用することはできませんなぜ私が疑問に思います admin.pyでのUserProfile models.pyファイル。これは単にフィールド氏は述べています 存在しません。私はジャンゴでとは異なるフィールドを呼び出す必要がありますか/ contrib /認証/ admin.py私はそれを見てきたところ動作しますか?
私だけを教えてこれを行うには、より効率的な方法があるように感じる場合。私はすべての答えのために開いています。
解決
1
私はあなたがここにあまりにもうるさいなっていると思います。あなたは絶対に微小な詳細を制御する必要がある場合は、代わりに管理者を使用しての独自のビューを作成する必要があります。それ以外の場合は積み重ねられた表が1対1の関係のためにあまり意味がありませんので、あなたが望むものである。
2
私は、ユーザープロファイルにフィールドセットを使用することができました。私のコードとあなたの唯一の違いは、私は、タプルの代わりの辞書年代を使っているということのようです。比較のためにここでの鉱山ます:
class UserProfileInline(admin.StackedInline):
model = UserProfile
class MyUserAdmin(UserAdmin):
inlines = [UserProfileInline]
fieldsets = (
(None, {'fields': ('username', 'password')}),
(_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
(_('Permissions'), {'fields': ('is_staff', 'is_active', 'is_superuser')}),
(_('Important dates'), {'fields': ('last_login', 'date_joined')}),
(_('Groups'), {'fields': ('groups',)}),
)
exclude = ['user_permissions']
編集
私は簡単にチェックし、「#1」が管理テンプレートから来ているのでした。
この手段もしこれが1対多のあるものを含め、すべてのインラインに影響しますが、簡単に、在庫管理テンプレートをオーバーライドすることで、それを削除することができます。
積層インラインテンプレートがdjango/contrib/admin/templates/admin/edit_inline/stacked.html
に見出すことができる。
この手段では、あなたはtemplates/admin/edit_inline/stacked.html
として独自のテンプレートディレクトリにテンプレートをコピーすることができ、これは代わりに株式テンプレートの実行時にジャンゴによってロードされます。
#{{ forloop.counter }}
を削除するには、編集ローカルコピーをコピーした後、