django2-一对多

一对多

环境

两个类:书的类别和文章,一片文章只能有一个作者,一个作者可以有多个文章,这之间组成了一对多的关系

class Category(models.Model):
    category = models.CharField(max_length=100)

    def __str__(self):
        return self.category



class Article(models.Model):
    title = models.CharField(max_length=20,verbose_name='书名')
    info = models.TextField(verbose_name='内容')
    author = models.CharField(max_length=10, verbose_name='作者')
    f = models.ForeignKey(to='Category',on_delete=models.CASCADE)#如果不想用article_set这种形式查找,可以使用related_name='articles',那么在视图one_to_many函数中就可以使用articles = category.articles.all()

添加文章

def add_article(request):
    article = Article(title='钢铁是怎样炼成的',info='不知道',author='疯子')
    article.f = Category.objects.get(id=1)
    article.save()
    return HttpResponse('添加文章成功')

通过书的类型查找文章

def one_to_many(request):
    category = Category.objects.first()
    articles = category.article_set.all()#all可以换成filter或者first
    for i in articles:
        print(i.title)
        print(i.author)
        print(i.content)
    return HttpResponse('ok')

猜你喜欢

转载自www.cnblogs.com/fengzi7314/p/10961576.html