Как правильно отобразить связь foreign key между двумя моделями?

  • 3 сентября 2023 г. 2:26
Ответы на вопрос 7
В Django для отображения связи по внешнему ключу между двумя моделями вы можете использовать поле ForeignKey(). Это поле позволяет создать однонаправленную связь между моделями.

Пример:

```python
from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

    def __str__(self):
        return self.title
```

В приведенном примере модель Book содержит поле `author`, которое является внешним ключом к модели Author. При удалении записи из модели Author, все связанные с ней записи модели Book также будут удалены (за счет `on_delete=models.CASCADE`).

В админке Django связь по внешнему ключу отображается автоматически. При редактировании модели Book вы увидите выпадающий список для выбора автора из модели Author.

Вы также можете определить, каким образом будет отображаться внешний ключ в админке, определив класс Admin для модели Book:

```python
from django.contrib import admin

class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'author')

admin.site.register(Book, BookAdmin)
```

В данном примере список записей модели Book в админке будет отображаться с колонками "title" и "author".
 1. Слушайте активно и задавайте уточняющие вопросы, чтобы лучше понять собеседника. 
 2. Устанавливайте ясные цели для себя и следуйте им, чтобы достигать успеха. 
 3. Будьте организованы и эффективно распределяйте свое время. 
 4. Развивайте свои навыки коммуникации, чтобы лучше взаимодействовать с другими людьми. 
 5. Постоянно учитеся и совершенствуйте свои знания и навыки. 
 6. Будьте открыты новым возможностям и готовы идти на риск. Адресуйте свои предложения и комментарии в разделе "Примечания".
Похожие вопросы