我创建了这个模型。但我需要each song need each artist
怎么可能?
我不知道。这是我的model screenshot你能帮助我吗?谢谢
class Song(models.Model):
title = models.CharField(max_length=100,help_text="Album Name")
slug = models.SlugField(unique = True,help_text="Must be unique.")
artist = models.CharField(max_length=100)
song_1 = models.CharField(max_length=100)
song_2 = models.CharField(max_length=100)
song_3 = models.CharField(max_length=100)
song_4 = models.CharField(max_length=100)
song_5 = models.CharField(max_length=100)
song_6 = models.CharField(max_length=100)
#
type = models.ForeignKey(Category)
def __unicode__(self):
return self.title
UPDATE2:谢谢你们。我认为这不是正确的解决方案。如果我必须找到song_5
属于this album
和artist
。这怎么可能? : -
class Artist(models.Model):
name = models.CharField(max_length=100)
def __unicode__(self):
return self.name
class Album(models.Model):
name = models.CharField(max_length=100)
def __unicode__(self):
return self.name
class Song(models.Model):
song_1 = models.CharField(max_length=100)
song_2 = models.CharField(max_length=100)
song_3 = models.CharField(max_length=100)
song_4 = models.CharField(max_length=100)
song_5 = models.CharField(max_length=100)
song_6 = models.CharField(max_length=100)
#
artist = models.ManyToManyField(Artist)
album = models.ManyToManyField(Album)
type = models.ForeignKey(Category)
def __unicode__(self):
return self.title
答案 0 :(得分:1)
在Song
课程中,添加一个字段:
artist = models.ForeignKey(Artist)
然后每首歌只有一位艺术家,但艺术家可以有很多歌。如果您想要一首歌有很多艺术家,请使用ManyToManyField
。
答案 1 :(得分:0)
你必须在艺术家,歌曲和专辑之间建立关系。
在你的情况下,ForeignKey
可能就足够了,但是
这确实是一个广泛而基本的话题,你绝对应该阅读Relationships
上的文档。
答案 2 :(得分:0)
最佳解决方案是InlineModel
。这是链接https://docs.djangoproject.com/en/1.3/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin
不管怎么说,多谢拉。这是my output
这是我的模特
class Artist(models.Model):
name = models.CharField(max_length=100)
def __unicode__(self):
return self.name
class Album(models.Model):
name = models.CharField(max_length=100)
def __unicode__(self):
return self.name
class Song(models.Model):
title = models.CharField(max_length=100)
artist = models.ForeignKey(Artist)
album = models.ForeignKey(Album)
type = models.ForeignKey(Category)
def __unicode__(self):
return self.title
这里是admin.py
class SongInline(admin.TabularInline):
#list_display = ('title','artist','song_1','song_2','song_3','song_4','song_5','song_6')
#prepopulated_fields = { 'slug': ['title'] }
model = Song
class AlbumAdmin(admin.ModelAdmin):
inlines = [
SongInline,
]
class ArtistAdmin(admin.ModelAdmin):
pass