когда мы создаем объект через django ORM, для foreign key надо указать instance объекта не id. 
                  
                  
                  
                  
                  
                  Например:
                  
                  
                  Publisher.objects.create(name='John')
                  
                  
                  
                  
                  
                  Book.objects.create(name='Machine Learning', publisher=1)
                  
                  
                  Но так нельзя выдает ошибку: 
                  
                  
                  ValueError: Cannot assign "1": "Book.publisher" must be a "Publisher" instance.
                  
                  
                  
                  
                  
                  Надо указать instance:
                  
                  
                  
                  
                  
                  publisher = Publisher.objects.create(name='John')
                  
                  
                  
                  
                  
                  Book.objects.create(name='Machine Learning', publisher=publisher)
                  
                  
                  
                  
                  
                   Вопрос, почему на примую нельзя указать 'id' foreign key объекта?
                  
                  
                
потому что это ОРМ
 ⚜️
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          ⚜️
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  ну камон, если детально можете объяснить буду благодарен
знаешь как расшифровывается ORM?
 ⚜️
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          ⚜️
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  аха,
Можно
Можно сделать используя только ID, без объекта, синтаксис вот такой: model_obj = MyModel(some_field='blabla', another_field='qweqwe') model_obj.related_field_id = 4 model_obj.save()
 ⚜️
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          ⚜️
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  аха понятно, спасибо большое
Обсуждают сегодня