我有两个名为'作者'和'进入'的模型,定义如下。
class Author(models.Model):
name = models.CharField(max_length=50)
email = models.EmailField()
msgtoauthor = models.TextField()
class Entry(models.Model):
blog = models.ForeignKey(Blog)
headline = models.CharField(max_length=255)
body_text = models.TextField()
pub_date = models.DateTimeField()
authors = models.ManyToManyField(Author)
我正试图从'Entry'访问'Author.msgtoauthor'。
我知道,我可以通过
检索Entry和Author之间的关系e = Entry.objects.get(authors)
是否可以提取作者ID?
我知道在后端,Django为作者和条目创建了一个表,但我想从'Entry'中的方法更新'msgtoauthors'。
提前致谢。
答案 0 :(得分:3)
你的意思是
for author in my_entry.authors.all():
author.msgtoauth = 'Here is new content'
author.save()
Entry.authors
返回RelatedManager
,my_entry.authors.all()
是QuerySet,返回Author对象。请参阅https://docs.djangoproject.com/en/1.3/ref/models/relations/和https://docs.djangoproject.com/en/1.3/topics/db/models/#many-to-many-relationships。
(更新)。
答案 1 :(得分:2)
试试这个:
entry.msgtoat('Hello')
例如,要更新条目:
{{1}}
答案 2 :(得分:1)
如果所有作者都能获得相同的价值:
entry.authors.update(msgtoauthor='Hey there!')
答案 3 :(得分:0)
https://github.com/Ry10p/django-Plugis/blob/master/courses/models.py 第52行
class name():
the_thing1 = models.CharField()
another = models.TextField()
class name2():
the_thing2 = models.ForignKey(the_thing1)
another2 = models.ForignKey(another)
-Cheers