Форум сайта python.su
Да… “_” никак не влияет, вчера где-то накосячил, в моей таблице были имена с “_” и не работало, создал тестовую без них и заработало. В моей таблице много всего, сейчас еще раз сделал и нормально всё завелось.
Теперь увидел что нормально всё работает, не понимал до этого.
>>> MyModel_Author.objects.filter(mymodel_book__name__iendswith='3') [<MyModel_Author: Author 1>] >>>
Офлайн
Еще такой вопросик, у меня в модели (many-to-many) был метод (get_contract), который возвращал данные из подобъекта. Что-то типа такого:
class MyModel_Author(models.Model): name = models.CharField(max_length=254) book = models.ManyToManyField(mymodel_author_mymodel_book) def __unicode__(self): return self.name def get_contract(self): contract = self.book.first().contract_number return contract class MyModel_Book(models.Model): name = models.CharField(max_length=254) contract_type = models.CharField(max_length=254) author = models.ForeignKey('MyModel_Author') def __unicode__(self): return u'{}: {}'.format(self.author.name, self.name)
contract = self.mymodel_book.first().contract_number
Отредактировано quadright (Июль 31, 2014 08:08:21)
Офлайн
Если вы хотите получить объекты которые ссылаются НА вас, то нужно использовать _set, имя поля - это имя модели в lower case
Т.е.:
def get_contract(self): return self.mymodel_book_set.first().contract_type
Офлайн
contract_number и contract_type - это прям на форуме код писал, в моей таблице другие имена. Затык был в _set, с _set'ом всё заработало, ага
Благодарю еще раз
Отредактировано quadright (Авг. 1, 2014 03:58:58)
Офлайн