我已经在堆栈上阅读了一些这样的问题,但我无法得到我想要的结果。
我有一个简单的models.Model
类,在名为Driftwood()
的应用中名为driftwoods
。在另一个应用galleries
中,我的模型GalleryPiece
使用Driftwood()
ForeginKey()
。
我可以让Driftwood()
拥有ForiegnKey()
到GalleryPiece()
,通过查看其他代码示例应该有效。但我想在商店应用中重用我的Driftwood()
模型,使用ForeingKey()
,就像我在GalleryPiece()
中一样,但不要与galleries
应用绑定。
这是可能的,还是我必须制作GalleryDriftwood()
和ProductDriftwood()
型号?我知道这更有意义,但我会将所有Driftwood()
都放在一个表格中。
class Size( models.Model ):
length = models.IntegerField()
width = models.IntegerField()
height = models.IntegerField()
class Driftwood( models.Model ):
name = models.CharField( max_length=60, default='driftwood' )
weight = models.FloatField()
size = models.ForeignKey( Size )
image = models.ImageField( upload_to='static/driftwoods/' )
from driftwoods.models import Driftwood
class Gallary( models.Model ):
name = models.CharField( max_length=60 )
image = models.ImageField( upload_to='static/galleries/' )
class GallaryPiece( models.Model ):
name = models.CharField( max_length=60 )
gallary = models.ForeignKey( Gallary )
driftwood = models.ForeignKey( Driftwood )
我打算像这样使用商店应用程序。
from driftwoods.models import Driftwood
class Product( models.Model ):
driftwood = models.ForeignKey( Driftwood )
price = models.FloatField()
我添加Driftwood()
模型的唯一方法是通过TabularInline
中的gallaries/admin.py
课程。
# NOTHING, ADD DRIFTWOOD BY CREATING A GALLEY PIECE
from driftwoods.models import Driftwood
class DriftwoodInline( admin.TabularInline ):
model = Driftwood
class GallaryAdmin( admin.ModelAdmin ):
fieldsets = [
(None, {'fields': ['name']} ),
('Date Information', {'fields': ['pub_date']} ),
('Gallary Image', {'fields': ['image']} ),
]
class GallaryPieceAdmin( admin.ModelAdmin ):
fieldsets = [
(None, {'fields': ['name']} ),
('Date Information', {'fields': ['pub_date']} ),
('Description', {'fields': ['description']} ),
]
inlines = [DriftwoodInline]
admin.site.register( Gallary, GallaryAdmin )
admin.site.register( GallaryPiece, GallaryPieceAdmin )
P.S我现在正在船上,所以我会在大约2-3个小时内回来接一个答案。一如既往,我很感激帮助(谁没有)。