Python 如何制作一个具有多对多关系的模型,如摇滚、乡村、蓝调和流行音乐
编辑:Python 如何制作一个具有多对多关系的模型,如摇滚、乡村、蓝调和流行音乐,python,django,django-models,Python,Django,Django Models,编辑: 我想有另一个模式来分类我的所有专辑,其中将采取多个类别。类别将是预先指定的选项,这将使查询更健壮、更易于处理 我认为您要做的是将Category定义为一个与Album具有多对多关系的模型。通过这种方式,您可以执行以下操作:Album.objects.filter(category\uu name='country'),或者您可以使用category的一个实例执行category.Album\u set.all() 请在您的相册型号上尝试以下操作: from django.db impor
我想有另一个模式来分类我的所有专辑,其中将采取多个类别。类别将是预先指定的选项,这将使查询更健壮、更易于处理 我认为您要做的是将Category定义为一个与Album具有多对多关系的模型。通过这种方式,您可以执行以下操作:
Album.objects.filter(category\uu name='country')
,或者您可以使用category的一个实例执行category.Album\u set.all()
请在您的相册型号上尝试以下操作:
from django.db import models
from django.core.urlresolvers import reverse
from django.conf import settings
from django.contrib.auth.models import User
class Album(models.Model):
creator = models.CharField(max_length=250)
album_name = models.CharField(max_length=250)
category = models.CharField(max_length=250)
album_photo = models.FileField()
author = models.ForeignKey (User,on_delete=models.CASCADE, related_name='album', default='1')
def get_absolute_url(self):
return reverse('post:detail',kwargs={'pk': self.pk})
def __str__(self):
return self.creator + ' - ' + self.album_name
class Song(models.Model):
Album = models.ForeignKey(Album, on_delete=models.CASCADE)
song_name = models.CharField(max_length=250)
def __str__(self):
return self.song_name
class Category(models.Model):
name = models.CharField(max_length=50)
desc = models.TextField()
然后添加到您的相册型号:
from django.db import models
from django.core.urlresolvers import reverse
from django.conf import settings
from django.contrib.auth.models import User
class Album(models.Model):
creator = models.CharField(max_length=250)
album_name = models.CharField(max_length=250)
category = models.CharField(max_length=250)
album_photo = models.FileField()
author = models.ForeignKey (User,on_delete=models.CASCADE, related_name='album', default='1')
def get_absolute_url(self):
return reverse('post:detail',kwargs={'pk': self.pk})
def __str__(self):
return self.creator + ' - ' + self.album_name
class Song(models.Model):
Album = models.ForeignKey(Album, on_delete=models.CASCADE)
song_name = models.CharField(max_length=250)
def __str__(self):
return self.song_name
class Category(models.Model):
name = models.CharField(max_length=50)
desc = models.TextField()
伟大的这种关系起了作用。我将如何使其成为预先制作的类别之一?