[英]Django getting a model from another model
我有兩個模型,一個作者和一個文章。 每篇文章都需要引用其作者,以便我可以在模板中訪問其值。 最有效的方法是什么?
class Author(models.Model):
name = models.CharField(max_length=256)
picture = models.CharField(max_length=256)
class Article(models.Model):
title = models.CharField(max_length=256)
author = #The Author model that wrote this article
date = models.DateTimeField(default=datetime.now)
body = models.TextField()
您需要為此使用Foreign Key
概念。 以下是其實現:
class Author(models.Model):
name = models.CharField(max_length=256)
picture = models.CharField(max_length=256)
class Article(models.Model):
title = models.CharField(max_length=256)
author = models.ForeignKey(Author)
date = models.DateTimeField(default=datetime.now)
body = models.TextField()
保存時,您需要在views.py
執行以下操作:
if form.is_valid():
author = Author.objects.get(name="author name")
form.save(author=author)
希望能幫助到你...
class Author(models.Model):
name = models.CharField(max_length=256)
picture = models.CharField(max_length=256)
class Article(models.Model):
title = models.CharField(max_length=256)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
date = models.DateTimeField(default=datetime.now)
body = models.TextField()
>>> r1 = Author(name='John',picture='johnpicture')
>>> r1.save()
>>> r2 = Author(name='John',picture='paulpicture')
>>> r2.save()
>>> from datetime import date
>>> a = Article(title="Article1", body="This is a test",date=date(2017, 7, 27), author=r1)
>>> a.save()
>>> a.reporter
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.