Comments 58
Ну пускай, человек благое дело делает. Главное, что все не закончилось на первой части.
djbook.ru/
Уже давно переводят, только оригинальная джангобук что-то давно не обновляется…
Уже давно переводят, только оригинальная джангобук что-то давно не обновляется…
Так и хочется крикнуть «Идиот!»
Я искренне благодарен автору этого топика за то что он делает. Вы очень, очень не правы. Извиняюсь, ну вскипело просто. Можете не приводить свои аргументы, я вам просто скажу — где-то вы ошибаетесь. Так мало хорошей документации на русском и тут еще такие комментаторы.
Автор, переводите еще. Плюсы вам везде куда можно.
Я искренне благодарен автору этого топика за то что он делает. Вы очень, очень не правы. Извиняюсь, ну вскипело просто. Можете не приводить свои аргументы, я вам просто скажу — где-то вы ошибаетесь. Так мало хорошей документации на русском и тут еще такие комментаторы.
Автор, переводите еще. Плюсы вам везде куда можно.
Спасибо большое :)
Проблема не в том, что человек делает какое-то дело и переводит все это. Просто он переведет всю документацию (в лучше случае), но на ее обновления инициативы уже не останется. И будет лежать очередные неактуальные груды текста, путая новичков.
Мне вот что интересно — а чем вызвана необходимость объявлять внешние ключи только в одной модели? Что будет, если объявить ManyToMany в обеих?
Просто как-то непривычно это видеть после ORM'а Kohan'ы…
Просто как-то непривычно это видеть после ORM'а Kohan'ы…
Меня интересует алгоритм, сравнить с имеющимися в используемом мной php-фреймворке. Django я не никогда не использовал.
Гм… странное решение. Ведь ManyToMany в принципе равноправная связь, обе модели могут быть заинтересованы в ее использовании напрямую.
А скиньте кусок кода, плз :)
Какого кода? Любого? Php пойдет?
:)
:)
Конечно на php :)
«Что будет, если объявить ManyToMany в обеих?». Вот эти пару моделек, если не сложно.
«Что будет, если объявить ManyToMany в обеих?». Вот эти пару моделек, если не сложно.
Спасибо. В PHP приходится явно указывать то, что в Python'е можно сделать динамически. Отсюда и разница в подходах фреймворков.
Что именно? Если мне не изменяет память, параметр 'model' может быть опущен, в таком случае он сгенерируется из названия связи (только в единственном числе). Есть также возможность указать имена внешних ключей, если они отличаются от стандартных (типа «user_id»).
В Python есть setattr ;) Этим Django нагло пользуется.
Да, я вот начал изучение Питона и Джанги после РНР и фреймворка Symfony с Propel в качестве ORM. Странный подход, насчет того что указывать только в одной модели отношение м2м, как-то не читабельно получается, и опять-таки, получается что отношение неравноправное. Но наверно к этому надо привыкать просто.
Надеюсь у меня получится, т.к. местами прочитать код на питоне очень тяжело, по сравнению с кодом в РНР. Но это, скорее всего, привычка.
Надеюсь у меня получится, т.к. местами прочитать код на питоне очень тяжело, по сравнению с кодом в РНР. Но это, скорее всего, привычка.
Разве не логично, что раз отношение m2m, то связь двусторонняя, ведь в отношение вовлечены обе стороны? :) Просто становится меньше писанины.
Как написали ниже:
замечательная фраза :D
Как написали ниже:
PS. Поначалу это кажется магией :) Но это просто питон.
замечательная фраза :D
Спасибо за топик.Так мало русскоязычной документации.
Вам бы сайтик, и все туда складывать. Почему практически у всех фреймворков есть русскоязычные сайты поддержки, а у django нет.
Я думаю при наличии нескольких заинтересованных людей можно организовать подобный ресурс.
Вам бы сайтик, и все туда складывать. Почему практически у всех фреймворков есть русскоязычные сайты поддержки, а у django нет.
Я думаю при наличии нескольких заинтересованных людей можно организовать подобный ресурс.
Кстати, автор, вам надо указать, под какой лицензией распространяется ваш перевод. Если она будет какой надо, то в дальнейшем люди могли бы помочь с обновлением.
Народ, ну вы тут и развели, не нравиться статья — не читайте! Понаписали что вам и как не нравиться, дайте людям обсудить особенности документации, что не понятно. Нет, нужно каждому сказать, зачем да почему, да мне это не нравится. И еще раз, не нравиться -> Не читай!
И все-таки, как быть со свзью многие-ко-многим, если хочеться в обоих классах иметь коллекции
class User1(models.Model):
pk_user1_id = models.AutoField(primary_key=True, db_column='pk_user1_id')
name = models.CharField(max_length=135, blank=True)
organizations = models.ManyToManyField(Organization1, db_table=u'User1_has_Organization1', related_name='organizations')
class Meta:
db_table = u'User1'
class Organization1(models.Model):
pk_organization1_id = models.AutoField(primary_key=True, db_column='pk_Organization1_id') # Field name made lowercase.
name = models.CharField(max_length=135, blank=True)
users = models.ManyToManyField(User1, db_table = u'User1_has_Organization1', related_name='users')
class Meta:
db_table = u'Organization1'
И это не работает:(
И как указать на какой столбец в промежуточной таблице должна мапиться связь? Потому, что джанго хочет конкретный столбец(organization1_id), а у меня в базе в этой таблице столбцы с иными названиями(fk_organization_id)?
class User1(models.Model):
pk_user1_id = models.AutoField(primary_key=True, db_column='pk_user1_id')
name = models.CharField(max_length=135, blank=True)
organizations = models.ManyToManyField(Organization1, db_table=u'User1_has_Organization1', related_name='organizations')
class Meta:
db_table = u'User1'
class Organization1(models.Model):
pk_organization1_id = models.AutoField(primary_key=True, db_column='pk_Organization1_id') # Field name made lowercase.
name = models.CharField(max_length=135, blank=True)
users = models.ManyToManyField(User1, db_table = u'User1_has_Organization1', related_name='users')
class Meta:
db_table = u'Organization1'
И это не работает:(
И как указать на какой столбец в промежуточной таблице должна мапиться связь? Потому, что джанго хочет конкретный столбец(organization1_id), а у меня в базе в этой таблице столбцы с иными названиями(fk_organization_id)?
Из объекта Organization1 всегда же можно получить список User1, которые в него входят. Или я чего-то не понимаю в вашем вопросе?
Проблема в том, что я хочу у юзера иметь коллекцию организаций, а у организации коллекцию юзеров, что не понятно?
А какая разница? Я не совсем понимаю бизнес-логику данного желания.
В смысле какая разница, связь многие-ко-многим, и у того, и утого хочется иметь коллекции, а это не работает!
Давайте проясним.
У объекта my_user есть коллекция [org1, org2, org3]
У объекта my_user2 есть коллекция [org1, org3]
В таком случае:
У объекта org1 есть коллекция [my_user, my_user2]
У объекта org2 есть коллекция [my_user]
У объекта org3 есть коллекция [my_user, my_user2]
Всё так?
У объекта my_user есть коллекция [org1, org2, org3]
У объекта my_user2 есть коллекция [org1, org3]
В таком случае:
У объекта org1 есть коллекция [my_user, my_user2]
У объекта org2 есть коллекция [my_user]
У объекта org3 есть коллекция [my_user, my_user2]
Всё так?
Да, вопрос в том, ели в модели не указывать в одном из классов коллекцию, как ее получить?(Я до это в java работал c JPA поэтому возникают такие вопросы)
В вашем случае у объекта org1 есть коллекция organizations (то есть так, как вы прописали related_name) в модели User1.
org1.organizations.all() — список всех User1, входящих в эту организацию.
PS. Поначалу это кажется магией :) Но это просто питон.
org1.organizations.all() — список всех User1, входящих в эту организацию.
PS. Поначалу это кажется магией :) Но это просто питон.
Проблема в том, что я хочу у юзера иметь коллекцию организаций, а у организации коллекцию юзеров, что не понятно?
Очень актуально для меня. Если перевод будет продолжаться (что очень хочется), то буду изучать Django по нему.
Одному делать это сложно, но я буду стараться )
вообще, это хорошо, когда делают переводы… это делает программу более популярной, что в целом всем выгоднее…
но когда переводят документацию к такой системе как Django — это кажется не очень правильным, она ведь завтра изменится, а вы не сможете все отследить, что и где изменилось, так как не сразу понятно, где и какие были правки… много их… да и статей там over 9000…
в любом случае удачи, думаю, ваш труд не пропадет напрасно — некоторые прочитают, составят себе хотя бы общее представление о системе…
но разобраться в ней не зная английского лично мне кажется нереальным…
но когда переводят документацию к такой системе как Django — это кажется не очень правильным, она ведь завтра изменится, а вы не сможете все отследить, что и где изменилось, так как не сразу понятно, где и какие были правки… много их… да и статей там over 9000…
в любом случае удачи, думаю, ваш труд не пропадет напрасно — некоторые прочитают, составят себе хотя бы общее представление о системе…
но разобраться в ней не зная английского лично мне кажется нереальным…
Спасибо. На данный момент не ставится задача перевести все статьи, мне хочется просто задать некую отправную точку для начинающих и, как вы и сказали, дать общее представление о системе. Насчет обновления это да. Возможно, удастся решить и эту проблему :)
(Скопировал из первой части)
Вы молодец! Вы проделали очень хорошую, очень большую работу.
Одно маленькое замечание: переводить документацию ориентированную на разработчиков вредно. Это рождает путаницу в терминалогии и неизбежные баги из-за ошиблк перевода и опять же неизбежного отставания перевода от основной документации.
Пожалуйста, прекратите переводить документацию для разработчика на русский.
Если вы всё же хотите поучаствовать и быть полезным, помогите российским разработчикам переводить их документацию на английский, помогите переводить пользовательскую документацию и интерфейс Gnome на русский, там у них сейчас ой как руки нужны…
Вы молодец! Вы проделали очень хорошую, очень большую работу.
Одно маленькое замечание: переводить документацию ориентированную на разработчиков вредно. Это рождает путаницу в терминалогии и неизбежные баги из-за ошиблк перевода и опять же неизбежного отставания перевода от основной документации.
Пожалуйста, прекратите переводить документацию для разработчика на русский.
Если вы всё же хотите поучаствовать и быть полезным, помогите российским разработчикам переводить их документацию на английский, помогите переводить пользовательскую документацию и интерфейс Gnome на русский, там у них сейчас ой как руки нужны…
Sign up to leave a comment.
Перевод Django Documentation: Models. Part 2