Сохранение контекста класса в переменной вне привязки события. Затем создайте 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);
}
});
}
Необходимо смочь сделать:
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 полезен.
"AuthorBook" кажется не правильно смоделированным.
Необходимо использовать a ManyToManyField
:
class Book(models.Model):
name = models.CharField()
authors = models.ManyToManyField(Author)
Затем можно сделать:
books = Book.objects.filter(authors__id=1)