Как я использую Django ORM для запросов этого many-many примера?

Сохранение контекста класса в переменной вне привязки события. Затем создайте IIFE и свяжите его контекст с сохраненным.

componentDidMount() {
  const ctx = this;
  svgViewport.on('mousemove', function (d, i) {
    if (mouseIsOverStream) {
      let mousex = d3.mouse(this);
      mousex = mousex[0];
      !function () {
        // here I want this of the class instance context
        this.nearestTickPosition, this.currentStreamName = findNearestTickPosition(mousex);
      }.bind(ctx)();
    }
  });
}

Кроме того, это должно работать тоже:

componentDidMount() {
  svgViewport = ...;
  svgViewport.on('mousemove', (d, i) => {
    if (mouseIsOverStream) {
      let mousex = d3.mouse(svgViewport); // here
      mousex = mousex[0];
      this.nearestTickPosition, this.currentStreamName = findNearestTickPosition(mousex);
    }
  });
}
5
задан Huuuze 10 February 2009 в 19:12
поделиться

2 ответа

Необходимо смочь сделать:

books = Book.objects.filter(authorbook__author_id=1)

получить QuerySet Книжных объектов, соответствующих Вашему author_id ограничению.

Хорошая вещь о Django - Вы, может приготовить это и играть вокруг с ним в оболочке. Можно также найти, что http://docs.djangoproject.com/en/dev/topics/db/queries/#spanning-multi-valued-relationships полезен.

14
ответ дан 18 December 2019 в 05:56
поделиться

"AuthorBook" кажется не правильно смоделированным.

Необходимо использовать a ManyToManyField:

class Book(models.Model):
  name = models.CharField()
  authors = models.ManyToManyField(Author)

Затем можно сделать:

books = Book.objects.filter(authors__id=1)
14
ответ дан 18 December 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: