Специальная, подарочная акция получения доступа к Django4!
Как, я, начал код писать в Python? Смотрите, если уперлись и ничего не получается.
Поработаем с Jupyter notebook, что бы лучше понять тонкости.
-
from django.db import models from django import forms from model_form.models import Author, Book from django.forms import ModelForm class AuthorForm(ModelForm): model = Author fields = ['name', 'title', 'birth_date'] class BookForm(ModelForm): model = Book fields = ['name', 'authors']
Хотел, что бы Вы сами выполнили домашнее задание, а проделать вместе только в Jupyter Notebook,
боюсь, что упустите важное, давайте кое-что сделаем вместе.
У нас есть 2 модели, да ещё и с выборкой.
# -*- coding: utf-8 -*- from django.db import models TITLE_CHOICES = [ ('MR', 'Mr.'), ('MRS', 'Mrs.'), ('MS', 'Ms.'), ] class Author(models.Model): name = models.CharField(max_length=100) ....... class Book(models.Model): .......... authors = models.ManyToManyField(Author)
Eсли мы попытаемся в админке отобразить - authors = models.ManyToManyField(Author) - получим исключение, Джанго скажет что ManyToManyField это отношения, а не конкретное поле.
@admin.register(Book) class BookOrderAdmin(admin.ModelAdmin): #fields = ['name', 'authors'] `list_display = ['name', 'authors']`
ERRORS:
<class 'model_form.admin.BookOrderAdmin'>: (admin.E109) The value of 'list_display[1]' must not be a ManyToManyField.
Нам нужно вытянуть поле с именем с модели Author.
class Author(models.Model): name = models.CharField(max_length=100) ......
Тогда все получится.
Давайте разбираться.
Это Джанго делает автоматом, но мы можем взять процесс в свои руки и добавить больше информации, что бы контролировать весь процесс.
Формы будем писать из полей форм и описывать представлением. Это не лучшие практики, но нам нужно выяснить как поведёт себя Джанго в нестандартной ситуации.
< 1 2 3 ... 40 41 42 43 44 ... 59 60 61 >