english - docs django project
django admin datos de campo de clave externa agregar (2)
Hay un complemento de django para obtener inlines en casos como este donde la relación es la opuesta a la habitual: django_reverse_admin
Deberá agregar django_reverse_admin a sus requisitos.txt:
-e git+https://github.com/anziem/django_reverse_admin.git#egg=django_reverse_admin
Luego importalo:
admin.py
from django_reverse_admin import ReverseModelAdmin
class UserProfileAdmin(ReverseModelAdmin):
inline_reverse = [''user'', ''contact'']
inline_type = ''tabular'' # or could be ''stacked''
admin.site.register(UserProfile, UserProfileAdmin)
En el formulario de agregar para cualquier aplicación en el administrador de django, para los campos de clave externa de ese modelo ... aparece una lista desplegable con el botón Agregar (que se abre en una ventana emergente). ¿Podemos tener un formulario donde podamos agregar los campos del modelo de clave externa en el mismo formulario?
Por ejemplo
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
contact = models.ForeignKey(Contact, blank=True, null=True)
Para los campos de usuario y contacto, hay un menú desplegable con el botón Agregar en el administrador Agregar formulario. ¿Tenemos todos los campos de usuario y contacto en la misma página?
Sí, puede hacerlo utilizando el sistema de administración en línea.
class UserAdmin(admin.StackedInline):
model = User
class ContactAdmin(admin.StackedInline):
model = Contact
class UserProfileAdmin(admin.ModelAdmin):
inlines = [ UserAdmin, ContactAdmin ]
Para obtener más detalles, visite https://docs.djangoproject.com/en/dev/ref/contrib/admin/#inlinemodeladmin-objects .