Django_admin的相关知识(82)

时间:2020-05-28
本文章向大家介绍Django_admin的相关知识(82),主要包括Django_admin的相关知识(82)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Admin

1.在网页上进入admin页面

注意,必须要先在Django中创建一个超级用户:

python manage.py createsuperuser

以此作为进入admin的账户。

2.相关操作

先在Django的models.py中创建几张表,以此来操作

models.py:

from django.db import models

# Create your models here.

from django.db import models

# Create your models here.
from django.db import models

# Create your models here.


class Author(models.Model):
    nid = models.AutoField(primary_key=True)
    name=models.CharField( max_length=32)
    age=models.IntegerField()

    # 与AuthorDetail建立一对一的关系
    authorDetail=models.OneToOneField(to="AuthorDetail",on_delete=models.CASCADE)
    def __str__(self):
        return self.name

class AuthorDetail(models.Model):

    nid = models.AutoField(primary_key=True)
    birthday=models.DateField()
    telephone=models.BigIntegerField()
    addr=models.CharField( max_length=64)

class Publish(models.Model):
    nid = models.AutoField(primary_key=True)
    name=models.CharField( max_length=32)
    city=models.CharField( max_length=32)
    email=models.EmailField()

    def __str__(self):
        return self.name


class Book(models.Model):

    nid = models.AutoField(primary_key=True)
    title = models.CharField( max_length=32)
    publishDate=models.DateField()
    price=models.DecimalField(max_digits=5,decimal_places=2)

    # 与Publish建立一对多的关系,外键字段建立在多的一方
    publish=models.ForeignKey(to="Publish",to_field="nid",on_delete=models.CASCADE)
    # 与Author表建立多对多的关系,ManyToManyField可以建在两个模型中的任意一个,自动创建第三张表
    authors=models.ManyToManyField(to='Author',)

    def __str__(self):
        return self.title

注意;

  加上  def __str__(self):  函数是为了在显示的时候可以显示自己想要看到的名字,要是不加就会显示一个对象名,如 Book Object

1.admin.py中的内容

要想在网页admin中显示创建的表,就必须要先配置admin.py文件:

最简单如:

from django.contrib import admin

# Register your models here.

from .models import *

admin.site.register(Book)
admin.site.register(Author)
admin.site.register(AuthorDetail)
admin.site.register(Publish)

结果如下:

 向Books表中添加书:

效果如下:

 如果想要他显示的为多个Book属性,如:

 则需要修改admin.py如下:

from django.contrib import admin

# Register your models here.

from .models import *

class BookConfig(admin.ModelAdmin):
    list_display = ['title','price','publishDate','publish']

admin.site.register(Book,BookConfig)


admin.site.register(Author)
admin.site.register(AuthorDetail)
admin.site.register(Publish)

让admin根据自己定义的区显示。

注意:

  在Book表中的字段包括:title,publish,publishDate,price,authors

  其中除了authors不可以加在 list_display中,其余的都可以,简单来说就是   多对多   的不可以这样使用,一对多的可以(publish)

要是想要后显示出来的字段可以和第一个字段一样,高亮可点击的话,如:

则需要改变admin.py如下:

from django.contrib import admin

# Register your models here.

from .models import *

class BookConfig(admin.ModelAdmin):
    list_display = ['title','price','publishDate','publish']
    list_display_links = ['title','price']  #可以添加多个

admin.site.register(Book,BookConfig)


admin.site.register(Author)
admin.site.register(AuthorDetail)
admin.site.register(Publish)

原文地址:https://www.cnblogs.com/liujie12/p/12980906.html