Sto assemblando l'amministratore per un'applicazione satchmo. Satchmo utilizza le relazioni OneToOne per estendere il modello base Product
e vorrei modificarlo tutto in un'unica pagina.Django Admin: OneToOne Relazione come Inline?
È possibile avere una relazione OneToOne come Inline? In caso contrario, qual è il modo migliore per aggiungere alcuni campi a una determinata pagina del mio amministratore che alla fine verranno salvati nella relazione OneToOne?
ad esempio:
class Product(models.Model):
name = models.CharField(max_length=100)
...
class MyProduct(models.Model):
product = models.OneToOne(Product)
...
Ho provato questo per la mia amministrazione, ma non funziona, e sembra aspettarsi una chiave esterna:
class ProductInline(admin.StackedInline):
model = Product
fields = ('name',)
class MyProductAdmin(admin.ModelAdmin):
inlines = (AlbumProductInline,)
admin.site.register(MyProduct, MyProductAdmin)
che getta questo errore: <class 'satchmo.product.models.Product'> has no ForeignKey to <class 'my_app.models.MyProduct'>
L'unico modo per farlo è un Custom Form?
edit: appena provato il seguente codice per aggiungere i campi direttamente ... anche non funziona:
class AlbumAdmin(admin.ModelAdmin):
fields = ('product__name',)
purtroppo il modello di genitore è già registrato con admin, e preferirei non andare fuori patch/biforcano Satchmo stesso – Jiaaro
Vedere il mio ulteriori spiegazioni –
oh, pro-tip! = D – Jiaaro