首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django:向模型的字段添加多个值

Django:向模型的字段添加多个值
EN

Stack Overflow用户
提问于 2017-06-01 04:48:34
回答 1查看 4.2K关注 0票数 2

我对Django很陌生。我正在尝试创建一个带有新闻的应用程序,以及这些新闻中提到的公司,并创建了以下模型:

代码语言:javascript
复制
class Company(models.Model):
    company_name = models.CharField(max_length=100)
    company_country = models.CharField(max_length=50)

    def __str__(self):
        return self.orgn_name 



class News(models.Model):
    news_title = models.CharField(max_length=200)
    news_link = models.CharField(max_length=100)
    news_date = models.DateField()
    news_company = models.ManyToManyField(Company)  

    def __str__(self):
        return self.news_title

现在,一条新闻可能提到不止一家公司。我如何解释这一点,并在数据库条目中输入公司列表?我现在正在使用默认的Sqlite。

例如,一条新闻可以是"Facebook和谷歌在人工智能领域的竞争“--这个新闻有两家公司: Facebook和Google。

1)如何设计我的模型,以便它们为Company取多个值

2)如何通过shell保存这些值?

3)如何查询,以便类似于SELECT COUNT (DISTINCT 'Company')....的查询分别输出FacebookGoogle,而不是"Facebook,Google"

我被困在这里,迫切需要一些指导。提亚

EN

回答 1

Stack Overflow用户

发布于 2017-06-01 05:20:20

您创建的模型很好,可以使用它们。我们一步一步地走,

  1. 让我们创建一个Company模型的实例: c = Company(company_name="Facebook", country_name="USA") c.save()
  2. 现在让我们创建一个News模型的实例: n = News(news_title="AI", news_link="Link", news_date="date")
  3. 现在我们必须将CompanyNews联系起来。可以这样做: n.news_company.add(c)
  4. 现在,为了查询,我们可以如下所示: News.objects.filter(news_company__name="Facebook")

这将给Facebook公司带来所有的消息。

希望这能给你一个先机。要获得更多的深入报道,请阅读此文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44298735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档