使用python的Djongo完成如下要求应该怎么写(Djongo的框架已经搭建,并且已经连接了数据库):创建模型表 1作者表: 拥有以下字段,字段都拥有verbose_name选项 name,age,email,gender 2书表:拥有以下字段,字段都拥有verbose_name选项 title,price,author(关联外键)。创建后台管理页面,页面要求对’作者‘表进行设置 1显示列'name', 'email'字段 2设置'name', 'email'字段查询显示 3设置表'age'字段过滤 4设置字段'email'排序 5设置数据记录分页30条 6设置Main和Advance区块, Main拥有字段'name', 'email'。Advance拥有字段'age', 'gender' 7设置内联显示,显示数据设置为5条
时间: 2023-12-30 19:02:59 浏览: 75
Python个人博客系统django源代码,个人网站系统源程序
5星 · 资源好评率100%
下面是使用Djongo实现以上要求的代码:
```python
# models.py
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=50, verbose_name='姓名')
age = models.IntegerField(verbose_name='年龄')
email = models.EmailField(verbose_name='邮箱')
gender = models.CharField(max_length=10, verbose_name='性别')
class Book(models.Model):
title = models.CharField(max_length=100, verbose_name='书名')
price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='价格')
author = models.ForeignKey(Author, on_delete=models.CASCADE, verbose_name='作者')
```
```python
# admin.py
from django.contrib import admin
from .models import Author, Book
class AuthorAdmin(admin.ModelAdmin):
list_display = ('name', 'email')
search_fields = ('name', 'email')
list_filter = ('age',)
ordering = ('-email',)
list_per_page = 30
fieldsets = (
('Main', {'fields': ('name', 'email')}),
('Advance', {'fields': ('age', 'gender')}),
)
inlines = [BookInline]
class BookInline(admin.TabularInline):
model = Book
extra = 5
admin.site.register(Author, AuthorAdmin)
```
这里我们定义了 `Author` 和 `Book` 两个模型表,并在 `Author` 模型表对应的 `ModelAdmin` 中设置了相关的后台管理页面要求。其中,我们通过设置 `list_display`、`search_fields`、`list_filter`、`ordering` 和 `list_per_page` 等属性来实现页面的设置。同时,我们也定义了内联显示的 `BookInline` 类,将其与 `Author` 模型表关联起来,从而实现了模型之间的关联显示。
阅读全文