Pull to refresh

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'ы…
UFO just landed and posted this here
Меня интересует алгоритм, сравнить с имеющимися в используемом мной php-фреймворке. Django я не никогда не использовал.
UFO just landed and posted this here
Гм… странное решение. Ведь ManyToMany в принципе равноправная связь, обе модели могут быть заинтересованы в ее использовании напрямую.
UFO just landed and posted this here
Я сейчас изучаю модуль Sprig для Kohana, он сделан по принципам моделей Django, потому и интересуюсь. Очень непривычная схема получается :)
UFO just landed and posted this here
Какого кода? Любого? Php пойдет?
:)
Конечно на php :)
«Что будет, если объявить ManyToMany в обеих?». Вот эти пару моделек, если не сложно.
вот тут лежат две стандартные модели для модуля Auth Kohana v3.0. Между ними связь ManyToMany (она объявляется как HasMany + спец. параметр through для указания промежуточной таблицы).

В версии 2.3.4 ORM использовал отдельное свойство $has_and_belongs_to_many.
Спасибо. В 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, то связь двусторонняя, ведь в отношение вовлечены обе стороны? :) Просто становится меньше писанины.

Как написали ниже:
PS. Поначалу это кажется магией :) Но это просто питон.

замечательная фраза :D
UFO just landed and posted this here
Насколько я понял, ему не нравится, что несмотря на то что отношение равноправное, отношение объявляется лишь в одной модели ) дискриминация
Спасибо за топик.Так мало русскоязычной документации.
Вам бы сайтик, и все туда складывать. Почему практически у всех фреймворков есть русскоязычные сайты поддержки, а у django нет.
Я думаю при наличии нескольких заинтересованных людей можно организовать подобный ресурс.
UFO just landed and posted this here
Это не сайт, а ветка форума.
Хотя я с вами согласен это на сегодняшний день максимум о 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)?
Из объекта Organization1 всегда же можно получить список User1, которые в него входят. Или я чего-то не понимаю в вашем вопросе?
Проблема в том, что я хочу у юзера иметь коллекцию организаций, а у организации коллекцию юзеров, что не понятно?
А какая разница? Я не совсем понимаю бизнес-логику данного желания.
В смысле какая разница, связь многие-ко-многим, и у того, и утого хочется иметь коллекции, а это не работает!
Давайте проясним.

У объекта 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. Поначалу это кажется магией :) Но это просто питон.
UFO just landed and posted this here
Благодарю, разобрался. Долго не мог понять почему не работает *_set, оказыватся надо для обратной связи надо вызывать related_name(если он задан), *_set(если не задан).
UFO just landed and posted this here
UFO just landed and posted this here
Проблема в том, что я хочу у юзера иметь коллекцию организаций, а у организации коллекцию юзеров, что не понятно?
Очень актуально для меня. Если перевод будет продолжаться (что очень хочется), то буду изучать Django по нему.
Будут желающие, перевод будет продолжаться :)
А поддерживаться актуальность уже переведённых разделов будет?
Одному делать это сложно, но я буду стараться )
Одному делать это сложно, но я буду стараться )
Извините, я с телефона. Видимо, куда-то не туда нажал :(
вообще, это хорошо, когда делают переводы… это делает программу более популярной, что в целом всем выгоднее…

но когда переводят документацию к такой системе как Django — это кажется не очень правильным, она ведь завтра изменится, а вы не сможете все отследить, что и где изменилось, так как не сразу понятно, где и какие были правки… много их… да и статей там over 9000…

в любом случае удачи, думаю, ваш труд не пропадет напрасно — некоторые прочитают, составят себе хотя бы общее представление о системе…

но разобраться в ней не зная английского лично мне кажется нереальным…
Спасибо. На данный момент не ставится задача перевести все статьи, мне хочется просто задать некую отправную точку для начинающих и, как вы и сказали, дать общее представление о системе. Насчет обновления это да. Возможно, удастся решить и эту проблему :)
(Скопировал из первой части)

Вы молодец! Вы проделали очень хорошую, очень большую работу.

Одно маленькое замечание: переводить документацию ориентированную на разработчиков вредно. Это рождает путаницу в терминалогии и неизбежные баги из-за ошиблк перевода и опять же неизбежного отставания перевода от основной документации.

Пожалуйста, прекратите переводить документацию для разработчика на русский.

Если вы всё же хотите поучаствовать и быть полезным, помогите российским разработчикам переводить их документацию на английский, помогите переводить пользовательскую документацию и интерфейс Gnome на русский, там у них сейчас ой как руки нужны…
Спасибо, я помню ваше сообщение :)
Sign up to leave a comment.

Articles