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
编辑:
我想有另一个模型来分类我的所有专辑,其中将采用多个类别。这些类别将是预先指定的选项,可以使查询更健壮,更易于处理。
答案 0 :(得分:2)
我认为您想要做的是将类别定义为与相册具有多对多关系的模型。这样,您可以执行以下操作:Album.objects.filter(category__name='country')
或者您可以使用类别的实例并执行category.album_set.all()
在相册模型上方尝试此操作:
class Category(models.Model):
name = models.CharField(max_length=50)
desc = models.TextField()
然后添加到您的相册模型:
category = models.ManyToManyField(Category)