我对Django很陌生。我正在尝试创建一个带有新闻的应用程序,以及这些新闻中提到的公司,并创建了以下模型:
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')....的查询分别输出Facebook和Google,而不是"Facebook,Google"
我被困在这里,迫切需要一些指导。提亚
发布于 2017-06-01 05:20:20
您创建的模型很好,可以使用它们。我们一步一步地走,
Company模型的实例:
c = Company(company_name="Facebook", country_name="USA") c.save()News模型的实例:
n = News(news_title="AI", news_link="Link", news_date="date")Company与News联系起来。可以这样做:
n.news_company.add(c)News.objects.filter(news_company__name="Facebook")这将给Facebook公司带来所有的消息。
希望这能给你一个先机。要获得更多的深入报道,请阅读此文档。
https://stackoverflow.com/questions/44298735
复制相似问题