Ich habe viele Fragen andersrum gesehen, die etwas in der folgenden haben:In Django admin, umfassen auth.User als Inline-
class UserProfileInline(admin.StackedInline):
model = UserProfile
can_delete = False
verbose_name_plural = 'profile'
class NewUserAdmin(UserAdmin):
inlines = (UserProfileInline,)
admin.site.unregister(User)
admin.site.register(User, NewUserAdmin)
Was ich will ist das Gegenteil zu tun, aber Ich kann nicht sehen, dass es funktioniert. Hier ist der Code, den ich habe, der nicht funktioniert.
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from myapp.models import SpecialUserType
class UserInline(admin.StackedInline):
model = User
can_delete = False
class IncludeUserAdmin(admin.ModelAdmin):
inlines = (UserInline,)
admin.register(SpecialUserType, IncludeUserAdmin)
Wie kann ich diese Arbeit zu machen, so dass User
ein Inline im Admin von SpecialUserType
ist?
Der Fehler, ich bin immer ist:
<class 'django.contrib.auth.models.User'> has no ForeignKey to <class 'students.models.SpecialUserType'>
Dies macht Sinn, weil die OneToOneField
im SpecialUserType
Modell untergebracht ist, offensichtlich und nicht in User
. Aber wie kann ich es auf dem OneToOneField
rückgängig machen?
(Ich weiß, das könnte eine ungewöhnliche Sache scheint, zu tun, aber es gibt einen guten Grund, dass ich den Admin auf diese Weise und nicht umgekehrt. Einrichten mag)
Welche Version von Django verwenden Sie? – sepulchered
Würde es nicht funktionieren, wenn Sie das Benutzermodell ableiten, um die fehlende Beziehung hinzuzufügen? – Ambroise