开发者

Django Many to Many Relationship backward querying

I have 2 models named 'Author' and 'Entry' as defined below.

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)

I am trying to access 'Author.msgtoauthor' from 'Entry'.

I know, I can retrieve the relationship between Entry and Author by

e = Entry.objects.get(authors)
开发者_如何学Python

Is it possible to extract the author id?

I know in the backend, Django creates a table for Authors and Entries but I want to update 'msgtoauthors' from a method in 'Entry'.

Thanks In Advance.


Did you mean

for author in my_entry.authors.all():
    author.msgtoauth = 'Here is new content'
    author.save()

?

Entry.authors returns a RelatedManager and my_entry.authors.all() is a QuerySet, that returns the Author objects. See https://docs.djangoproject.com/en/1.3/ref/models/relations/ and https://docs.djangoproject.com/en/1.3/topics/db/models/#many-to-many-relationships.

(Updated.)


Try this:

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)

    def msgtoat(self, message):
        self.authors.update(msgtoauthor=message)

For example, to update an entry:

entry.msgtoat('Hello')


If all the authors get the same value you can do:

entry.authors.update(msgtoauthor='Hey there!')


https://github.com/Ry10p/django-Plugis/blob/master/courses/models.py line 52

class name():
    the_thing1 = models.CharField()
    another = models.TextField()


class name2():
    the_thing2 = models.ForignKey(the_thing1)
    another2 = models.ForignKey(another)

-Cheers

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜