django多表关系一对多-增

[复制链接]
查看: 1896   回复: 0

307

主题

307

帖子

1714

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1714
2024-2-18 16:33:36   显示全部楼层   阅读模式  
通用封面.jpg


1、model.py要设置一多得模型
from django.db import models


# Create your models here.
# 1对多
# 用户类型和用户之间 用户:1:N
# 一个用户只属于 一个用户类型

# 用户类型
class userType(models.Model):
    name = models.CharField(max_length=30)

    class Meta:
        # 定义表名
        db_table = 'tb_userType'


# 用户表
class User(models.Model):
    name = models.CharField(max_length=30)
    age = models.IntegerField(default=18)
    # 定义外键关联
    userType = models.ForeignKey(userType, on_delete=models.CASCADE)  # models.CASCADE是级联删除

    class Meta:
        # 定义表名
        db_table = 'tb_user'
其中这个外键关联 后续给值得时候 1.他不能给用户类型里面没有id  2.他不能给空 空得是增补了User数据得

2.view.py书写视图函数
from django.http import HttpResponse
from django.shortcuts import render
from app2.models import *
import random
from django.db import connection
def add_user(request):
    # 重置UserType的AUTO_INCREMENT值
    # with connection.cursor() as cursor:
    #     cursor.execute("ALTER TABLE tb_usertype AUTO_INCREMENT = 1;")

    userTypes = ['青铜', '白银', '黄金', '钻石', '王者']
    for nameType in userTypes:
        userType.objects.create(name=nameType)
    for i in range(10, 30):
        # print(random.randint(1, 5))
        User.objects.create(name=f'张三-{i}', age=i, userType_id=random.randint(1, 5))
    return HttpResponse("添加成功")
3.增加urls.py路由
from django.urls import path, include
from app2.views import *
urlpatterns = [
    path('index/', index),

    path('add_user/', add_user)
]

回复

使用道具 举报

您需要登录后才可以回帖   登录 立即注册

高级模式

南通谢凡软件科技有限公司