Comments 58
UFO just landed and posted this here
Ну пускай, человек благое дело делает. Главное, что все не закончилось на первой части.
UFO just landed and posted this here
djbook.ru/
Уже давно переводят, только оригинальная джангобук что-то давно не обновляется…
Уже давно переводят, только оригинальная джангобук что-то давно не обновляется…
Так и хочется крикнуть «Идиот!»
Я искренне благодарен автору этого топика за то что он делает. Вы очень, очень не правы. Извиняюсь, ну вскипело просто. Можете не приводить свои аргументы, я вам просто скажу — где-то вы ошибаетесь. Так мало хорошей документации на русском и тут еще такие комментаторы.
Автор, переводите еще. Плюсы вам везде куда можно.
Я искренне благодарен автору этого топика за то что он делает. Вы очень, очень не правы. Извиняюсь, ну вскипело просто. Можете не приводить свои аргументы, я вам просто скажу — где-то вы ошибаетесь. Так мало хорошей документации на русском и тут еще такие комментаторы.
Автор, переводите еще. Плюсы вам везде куда можно.
Спасибо большое :)
Проблема не в том, что человек делает какое-то дело и переводит все это. Просто он переведет всю документацию (в лучше случае), но на ее обновления инициативы уже не останется. И будет лежать очередные неактуальные груды текста, путая новичков.
UFO just landed and posted this here
Мне вот что интересно — а чем вызвана необходимость объявлять внешние ключи только в одной модели? Что будет, если объявить ManyToMany в обеих?
Просто как-то непривычно это видеть после ORM'а Kohan'ы…
Просто как-то непривычно это видеть после ORM'а Kohan'ы…
UFO just landed and posted this here
Меня интересует алгоритм, сравнить с имеющимися в используемом мной php-фреймворке. Django я не никогда не использовал.
UFO just landed and posted this here
Гм… странное решение. Ведь ManyToMany в принципе равноправная связь, обе модели могут быть заинтересованы в ее использовании напрямую.
А скиньте кусок кода, плз :)
Какого кода? Любого? Php пойдет?
:)
:)
Конечно на php :)
«Что будет, если объявить ManyToMany в обеих?». Вот эти пару моделек, если не сложно.
«Что будет, если объявить ManyToMany в обеих?». Вот эти пару моделек, если не сложно.
Спасибо. В PHP приходится явно указывать то, что в Python'е можно сделать динамически. Отсюда и разница в подходах фреймворков.
Что именно? Если мне не изменяет память, параметр 'model' может быть опущен, в таком случае он сгенерируется из названия связи (только в единственном числе). Есть также возможность указать имена внешних ключей, если они отличаются от стандартных (типа «user_id»).
UFO just landed and posted this here
В Python есть setattr ;) Этим Django нагло пользуется.
UFO just landed and posted this here
Да, я вот начал изучение Питона и Джанги после РНР и фреймворка Symfony с Propel в качестве ORM. Странный подход, насчет того что указывать только в одной модели отношение м2м, как-то не читабельно получается, и опять-таки, получается что отношение неравноправное. Но наверно к этому надо привыкать просто.
Надеюсь у меня получится, т.к. местами прочитать код на питоне очень тяжело, по сравнению с кодом в РНР. Но это, скорее всего, привычка.
Надеюсь у меня получится, т.к. местами прочитать код на питоне очень тяжело, по сравнению с кодом в РНР. Но это, скорее всего, привычка.
Разве не логично, что раз отношение m2m, то связь двусторонняя, ведь в отношение вовлечены обе стороны? :) Просто становится меньше писанины.
Как написали ниже:
замечательная фраза :D
Как написали ниже:
PS. Поначалу это кажется магией :) Но это просто питон.
замечательная фраза :D
UFO just landed and posted this here
Спасибо за топик.Так мало русскоязычной документации.
Вам бы сайтик, и все туда складывать. Почему практически у всех фреймворков есть русскоязычные сайты поддержки, а у 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. Поначалу это кажется магией :) Но это просто питон.
UFO just landed and posted this here
UFO just landed and posted this here
Проблема в том, что я хочу у юзера иметь коллекцию организаций, а у организации коллекцию юзеров, что не понятно?
Очень актуально для меня. Если перевод будет продолжаться (что очень хочется), то буду изучать Django по нему.
Одному делать это сложно, но я буду стараться )
вообще, это хорошо, когда делают переводы… это делает программу более популярной, что в целом всем выгоднее…
но когда переводят документацию к такой системе как Django — это кажется не очень правильным, она ведь завтра изменится, а вы не сможете все отследить, что и где изменилось, так как не сразу понятно, где и какие были правки… много их… да и статей там over 9000…
в любом случае удачи, думаю, ваш труд не пропадет напрасно — некоторые прочитают, составят себе хотя бы общее представление о системе…
но разобраться в ней не зная английского лично мне кажется нереальным…
но когда переводят документацию к такой системе как Django — это кажется не очень правильным, она ведь завтра изменится, а вы не сможете все отследить, что и где изменилось, так как не сразу понятно, где и какие были правки… много их… да и статей там over 9000…
в любом случае удачи, думаю, ваш труд не пропадет напрасно — некоторые прочитают, составят себе хотя бы общее представление о системе…
но разобраться в ней не зная английского лично мне кажется нереальным…
Спасибо. На данный момент не ставится задача перевести все статьи, мне хочется просто задать некую отправную точку для начинающих и, как вы и сказали, дать общее представление о системе. Насчет обновления это да. Возможно, удастся решить и эту проблему :)
(Скопировал из первой части)
Вы молодец! Вы проделали очень хорошую, очень большую работу.
Одно маленькое замечание: переводить документацию ориентированную на разработчиков вредно. Это рождает путаницу в терминалогии и неизбежные баги из-за ошиблк перевода и опять же неизбежного отставания перевода от основной документации.
Пожалуйста, прекратите переводить документацию для разработчика на русский.
Если вы всё же хотите поучаствовать и быть полезным, помогите российским разработчикам переводить их документацию на английский, помогите переводить пользовательскую документацию и интерфейс Gnome на русский, там у них сейчас ой как руки нужны…
Вы молодец! Вы проделали очень хорошую, очень большую работу.
Одно маленькое замечание: переводить документацию ориентированную на разработчиков вредно. Это рождает путаницу в терминалогии и неизбежные баги из-за ошиблк перевода и опять же неизбежного отставания перевода от основной документации.
Пожалуйста, прекратите переводить документацию для разработчика на русский.
Если вы всё же хотите поучаствовать и быть полезным, помогите российским разработчикам переводить их документацию на английский, помогите переводить пользовательскую документацию и интерфейс Gnome на русский, там у них сейчас ой как руки нужны…
Sign up to leave a comment.
Перевод Django Documentation: Models. Part 2