Никита
Ребят, подскажите пожалуйста по поведению Django: Допустим, я в модели я пишу: topic = models.ForeignKey(Topic, on_delete=models.CASCADE) Но запрос он создает такой: FOREIGN KEY("topic_id") REFERENCES "learning_logs_topic"("id") DEFERRABLE INITIALLY DEFERRED Почему он дописывает _id в конце?
В Django поле ForeignKey задает связь "один-ко-многим" между двумя моделями. Когда вы определяете поле ForeignKey в модели, Django автоматически создает колонку базы данных с тем же именем, что и поле, за которым следует _id. Например, если вы определите поле ForeignKey с именем topic, Django создаст колонку базы данных с именем topic_id. Причина этого в том, что поле ForeignKey в вашей модели ссылается на поле первичного ключа целевой модели (в данном случае, поле id модели Topic). Поскольку в Django поле первичного ключа модели всегда называется id, полю ForeignKey в вашей модели автоматически присваивается имя <имя поля>_id, чтобы отличить его от поля первичного ключа целевой модели. Когда Django генерирует SQL запрос для создания таблицы для вашей модели, он использует имя поля ForeignKey (в данном случае topic_id) в качестве имени столбца базы данных в предложении FOREIGN KEY. Вот почему запрос, который вы предоставили, включает столбец "topic_id" в предложении FOREIGN KEY. В целом, суффикс _id добавляется к имени поля ForeignKey в вашей модели, чтобы отличить его от поля первичного ключа целевой модели, и этот же суффикс используется в сгенерированном SQL-запросе для указания имени столбца базы данных в ограничении FOREIGN KEY.
Igor
Чтобы изучить Java, вы можете выполнить следующие шаги: 1. Убедитесь, что вы хорошо понимаете основы программирования, такие как переменные, типы данных, циклы и функции. Если вы новичок в программировании, возможно, будет полезно начать с более простого языка, такого как Python, прежде чем изучать Java. 2. Найдите ресурсы для изучения Java. Существует множество книг, учебников и онлайн-курсов по изучению Java. Некоторые популярные ресурсы для изучения Java включают учебники Java от Oracle, документацию по Java и такие книги, как "Head First Java" и "Java для чайников". 3. Начните с основ Java. Начните с изучения фундаментальных концепций Java, таких как синтаксис, типы данных и управляющие структуры. Вы также можете узнать об объектно-ориентированном программировании на Java, которое является ключевой концепцией этого языка. 4. Практикуйтесь в написании программ на Java. Изучая основы языка Java, попробуйте применить полученные знания на практике, написав небольшие программы или скрипты. Это поможет вам лучше понять, как использовать язык, и развить свои навыки программирования. 5. Продолжайте учиться и расширять свои знания. Java - большой и сложный язык, и всегда есть чему поучиться. По мере освоения основ старайтесь изучать более сложные темы, такие как параллелизм, функциональное программирование и стандартная библиотека Java. В целом, изучение Java требует времени и практики.
Никита решил весь гугл сюда скопировать? )
Make
В Django поле ForeignKey задает связь "один-ко-многим" между двумя моделями. Когда вы определяете поле ForeignKey в модели, Django автоматически создает колонку базы данных с тем же именем, что и поле, за которым следует _id. Например, если вы определите поле ForeignKey с именем topic, Django создаст колонку базы данных с именем topic_id. Причина этого в том, что поле ForeignKey в вашей модели ссылается на поле первичного ключа целевой модели (в данном случае, поле id модели Topic). Поскольку в Django поле первичного ключа модели всегда называется id, полю ForeignKey в вашей модели автоматически присваивается имя <имя поля>_id, чтобы отличить его от поля первичного ключа целевой модели. Когда Django генерирует SQL запрос для создания таблицы для вашей модели, он использует имя поля ForeignKey (в данном случае topic_id) в качестве имени столбца базы данных в предложении FOREIGN KEY. Вот почему запрос, который вы предоставили, включает столбец "topic_id" в предложении FOREIGN KEY. В целом, суффикс _id добавляется к имени поля ForeignKey в вашей модели, чтобы отличить его от поля первичного ключа целевой модели, и этот же суффикс используется в сгенерированном SQL-запросе для указания имени столбца базы данных в ограничении FOREIGN KEY.
Спасибо за ответ, в таком случае есть еще один вопрос. topic = Topic.objects.get(id=topic_id) entries = topic.entry_set.order_by('-date_added') Каким образом entry_set понимает, что нужно вернуть все Посты(entries) из Темы(topic)? Глупый вопрос возможно, но все таки. Я понимаю, что код выше делает так: ID Темы = ID Поста в теме. Но мне не ясно, как менеджер проводит сверку. Если в обычном SQLite это выглядит так: SELECT Employees.Name, Departments.DepartmentName, Locations.LocationName FROM Employees, Departments, Locations WHERE Employees.DepartmentID == Departments.DepartmentID AND Employees.LocationID == Locations.LocationID То мне не ясно пока, как это выглядит в глазах Django.
Никита
Спасибо за ответ, в таком случае есть еще один вопрос. topic = Topic.objects.get(id=topic_id) entries = topic.entry_set.order_by('-date_added') Каким образом entry_set понимает, что нужно вернуть все Посты(entries) из Темы(topic)? Глупый вопрос возможно, но все таки. Я понимаю, что код выше делает так: ID Темы = ID Поста в теме. Но мне не ясно, как менеджер проводит сверку. Если в обычном SQLite это выглядит так: SELECT Employees.Name, Departments.DepartmentName, Locations.LocationName FROM Employees, Departments, Locations WHERE Employees.DepartmentID == Departments.DepartmentID AND Employees.LocationID == Locations.LocationID То мне не ясно пока, как это выглядит в глазах Django.
В приведенном вами коде атрибут entry_set модели Topic относится к набору всех связанных записей в модели Entry. Когда вы вызываете метод order_by для этого атрибута, он возвращает набор всех объектов Entry, у которых поле topic соответствует объекту Topic, для которого вы вызываете метод order_by, отсортированных по полю date_added в порядке убывания. В терминах SQL это эквивалентно следующему запросу: SELECT * FROM entry WHERE topic_id = <topic_id> ORDER BY date_added DESC где <topic_id> - это ID объекта Topic, для которого вы вызываете метод order_by. В Django поле ForeignKey действует как ссылка на поле первичного ключа целевой модели (в данном случае, поле id модели Topic). Когда вы обращаетесь к атрибуту entry_set объекта Topic, Django автоматически генерирует соответствующий SQL-запрос для возврата всех связанных с ним объектов Entry на основе значения поля ForeignKey в модели Entry.
Igor
Почти обучение онлайн) ... Никита, снимаю шляпу. Столько терпения)
Никита
В приведенном вами коде атрибут entry_set модели Topic относится к набору всех связанных записей в модели Entry. Когда вы вызываете метод order_by для этого атрибута, он возвращает набор всех объектов Entry, у которых поле topic соответствует объекту Topic, для которого вы вызываете метод order_by, отсортированных по полю date_added в порядке убывания. В терминах SQL это эквивалентно следующему запросу: SELECT * FROM entry WHERE topic_id = <topic_id> ORDER BY date_added DESC где <topic_id> - это ID объекта Topic, для которого вы вызываете метод order_by. В Django поле ForeignKey действует как ссылка на поле первичного ключа целевой модели (в данном случае, поле id модели Topic). Когда вы обращаетесь к атрибуту entry_set объекта Topic, Django автоматически генерирует соответствующий SQL-запрос для возврата всех связанных с ним объектов Entry на основе значения поля ForeignKey в модели Entry.
В SQLite предложение WHERE используется для указания условий, которым должны удовлетворять записи, чтобы быть включенными в результаты запроса. Например, в представленном вами запросе: SELECT Employees.Name, Departments.DepartmentName, Locations.LocationName FROM Employees, Departments, Locations WHERE Employees.DepartmentID == Departments.DepartmentID AND Employees.LocationID == Locations.LocationID Предложение WHERE определяет, что записи должны иметь совпадающие значения DepartmentID и LocationID в таблицах Employees и Departments, а также Employees и Locations, соответственно, чтобы быть включенными в результаты запроса. Другими словами, предложение WHERE используется для "согласования" данных из разных таблиц путем отбора только тех записей, которые удовлетворяют заданным условиям. Это позволяет объединить данные из нескольких таблиц и выбрать только те записи, которые вас интересуют. В целом, предложение WHERE в SQLite используется для указания условий, которым должны удовлетворять записи, чтобы быть включенными в результаты запроса, что позволяет объединить данные из нескольких таблиц и выбрать только те записи, которые вас интересуют.
Make
Make
10 пончиков из 10 этому господину.
Никита
Просто гугл. )
Igor
Единственное ИМХО это все не в прок... Так научиться нельзя
m700
а на SQLite норм учиться этому вашему SQL?
Make
Ну я как бы уже отгрохал свое веб-приложение. Взял из книги одного человека код и существенно его прокачал, добавил много новых фишек. Теперь дело за малым: Понять, как работает то, что я написал, полноценно, покрыть все try/except, написать тесты(а чо бы нет) и вот проект мелких для портфолио готов.
Make
Make
Make
Make
Make
Make
m700
а то c# сегодня наконецто доучил
Make
Если что, то я завез: сброс пароля, восстановление пароля, профиль, топовый редактор, удаление постов, удаление тем, редактирование тем.
Erik
А шо это те которые в закрепе тебя берут?
Вчера насчет тестового созванивался, мне сказали по тех скиллам все ок, жди пока хр насчет зп свяжется
Артем
а на SQLite норм учиться этому вашему SQL?
+- принцип построения похож но есть некоторые особенности в синтаксисе. Так же в обычном sql гораздо больше контейнеров для данных. SQLite в данном случае довольно сильно урезан.
Erik
Вчера насчет тестового созванивался, мне сказали по тех скиллам все ок, жди пока хр насчет зп свяжется
Пиздец, такое ощущение, что когда тебя кто-то оценивает, твой интеллект делится на десять, я сидел в чертовом ui не мог разобраться, в котором предыдущие три дня ковырялся
Сидредин
Чтобы изучить Java, вы можете выполнить следующие шаги: 1. Убедитесь, что вы хорошо понимаете основы программирования, такие как переменные, типы данных, циклы и функции. Если вы новичок в программировании, возможно, будет полезно начать с более простого языка, такого как Python, прежде чем изучать Java. 2. Найдите ресурсы для изучения Java. Существует множество книг, учебников и онлайн-курсов по изучению Java. Некоторые популярные ресурсы для изучения Java включают учебники Java от Oracle, документацию по Java и такие книги, как "Head First Java" и "Java для чайников". 3. Начните с основ Java. Начните с изучения фундаментальных концепций Java, таких как синтаксис, типы данных и управляющие структуры. Вы также можете узнать об объектно-ориентированном программировании на Java, которое является ключевой концепцией этого языка. 4. Практикуйтесь в написании программ на Java. Изучая основы языка Java, попробуйте применить полученные знания на практике, написав небольшие программы или скрипты. Это поможет вам лучше понять, как использовать язык, и развить свои навыки программирования. 5. Продолжайте учиться и расширять свои знания. Java - большой и сложный язык, и всегда есть чему поучиться. По мере освоения основ старайтесь изучать более сложные темы, такие как параллелизм, функциональное программирование и стандартная библиотека Java. В целом, изучение Java требует времени и практики.
PHP босс, это ты?
Сидредин
*Босс программист
Сидредин
Чтобы изучить Java, вы можете выполнить следующие шаги: 1. Убедитесь, что вы хорошо понимаете основы программирования, такие как переменные, типы данных, циклы и функции. Если вы новичок в программировании, возможно, будет полезно начать с более простого языка, такого как Python, прежде чем изучать Java. 2. Найдите ресурсы для изучения Java. Существует множество книг, учебников и онлайн-курсов по изучению Java. Некоторые популярные ресурсы для изучения Java включают учебники Java от Oracle, документацию по Java и такие книги, как "Head First Java" и "Java для чайников". 3. Начните с основ Java. Начните с изучения фундаментальных концепций Java, таких как синтаксис, типы данных и управляющие структуры. Вы также можете узнать об объектно-ориентированном программировании на Java, которое является ключевой концепцией этого языка. 4. Практикуйтесь в написании программ на Java. Изучая основы языка Java, попробуйте применить полученные знания на практике, написав небольшие программы или скрипты. Это поможет вам лучше понять, как использовать язык, и развить свои навыки программирования. 5. Продолжайте учиться и расширять свои знания. Java - большой и сложный язык, и всегда есть чему поучиться. По мере освоения основ старайтесь изучать более сложные темы, такие как параллелизм, функциональное программирование и стандартная библиотека Java. В целом, изучение Java требует времени и практики.
Ты просто добавил в предыдущее сообщение слово Java для каждого пункта?
Сидредин
m700
Почти.
В рерайтеры портфолио готово)
Disappointed
Всем привет. Что можете порекомендовать как первую книгу: 1. Изучаем Python. Программирование игр, визуализация данных, веб-приложения. Мэтиз Эрик 2. Начинаем программировать на Python. Тони Гэддис Гэддиса хвалят за суперподроьные объяснения, примеры и начальные главы с введением в компьютерные науки. Мэтиза хвалят тоже, как вы знаете.
Igor
Как вы знаете нет лучшего для всех. Каждый должен найти для себя сам лучшую книгу.
Igor
Для меня самые лучшие объяснения в офф документации, но кто то может быть со мной не согласен.
m700
мне укуса питона хватило
Igor
Раз уж о личном опыте. Не прочитал ни одной книги по питону, как то это не мешает мне на нем писать ;).
Igor
Это работает когда Python не первый ЯП. А когда двадцать пятый...
Ну вот собственно да. У всех разный бэкграунд и это не обязательно должно быть программирование. Все воспринимают информацию по разному и всем нужны разные задачи чтобы было интересно.
Igor
Ну и оговорюсь не прочитал ни одной целиком. А так "листал" довольно много. Все оно +- одно и то же.
Igor
Имхо новички сильно переоцинвают значение выбора первой книги. Какая под рукой ту и читайте, пишите побольше кода и анализируйте чужой.
Disappointed
Укус питона короткая, прочитываешь за пару дней и начинаешь практиковаться на алго задачках :)
Ее я принципиально не хочу читать) Изначально с нее хотел начать, но видимо более подробно хочется и глубинно изучить. К примеру мне важно те же определения терминов знать. И знать чуть в более подробной форме.
Igor
Меня очень бесят книги серии Head First ... оформление просто выкумаривает так и не смог ни одной толком почитать.
Igor
Хотя вообще они очень популярны. Или те же "Грокаем алгоритмы". На вкус и цвет.
Igor
Зубрить их особого смысла нет, ибо понимание важнее - это я понимаю. Но не будет лишним знать и их.
Более подробно и глубоко изучают по документации и пепам. Темболее почти под каждое решение есть пеп где рассказывают почему это работает так или иначе и почему принято именно такое решение. В этом плане пайтон даст фору большинству языков.
Andrii
Серия Hard Way мне нравится больше тем, что ты с ней должен работать за компом. Там практика, практика, практика...
Andrii
А вообще я не вижу проблемы читать две книги одновременно
Disappointed
Более подробно и глубоко изучают по документации и пепам. Темболее почти под каждое решение есть пеп где рассказывают почему это работает так или иначе и почему принято именно такое решение. В этом плане пайтон даст фору большинству языков.
Тогда еще такой вопрос. Документацию питончика на англ читать или на русском? С англ проблем нет, в ридинге так точно. Но скажется ли чтение на англ и изучение на нем как то на дальнейшие процессы? К примеру, тот же текст на русском нейтив русского поймет лучше чем то же но на англ Это вопрос из разряда «что бы еще спросить» сори 😁
Andrii
У меня было время, когда я одновременно читал пять книг 😊
Disappointed
англ
Опа, привет😁
Disappointed
Понял, значит на англ. Еще раз спасибо всем))
m700
1 час 43 минуты на чтение укуса питона, пописать примеры, поспрашивать в чате, выяснить что Азамат не все ответы по петухону знает и ему не помешало пройти собес, и составить конспект
Igor
в это время подача резюме и собеседование входят?
Make
Я на нее даже мини-обзор писал.
Make
И второе кстати тоже.
m700
в это время подача резюме и собеседование входят?
к концу обучения понял что всетаки останусь натуралом, но в заведениях соотвествующих больше респекта словлю
Make
Я читал что первую книгу, что вторую. По первой я начинал. Вторую читать закончил пару дней назад.
m700
Сильный же запор был
запор? хз, пацаны в школе по 500 р покупали, гоняли на нем пока ломали...мне так и не дали порулить
Igor
Написал обзоры на 2 книги. О себе ... почти отгрохал мини приложение на джанго на базе чужего кода ;). Прям сразу понятно этому человеку можно верить!
Igor
Что за укус питона?
Книга такая по питону.