gpt4 book ai didi

Django 模型 - 使用 Shell 插入外键值

转载 作者:行者123 更新时间:2023-12-04 03:01:40 27 4
gpt4 key购买 nike

我正在尝试通过 Django Shell 为我的模型保存值。我是 Django 的初学者。我装了三个模型。我一个一个地在模型中插入值。我首先创建部门并插入所有部门值。创建学生并插入所有与学生相关的值。现在我试图在包含两个外键 studentId 和 dept id 的类(class)中​​插入值。如何使用 Django Shell 为 Student 模型插入值。

    # -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models

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

class Student(models.Model):
studentId = models.AutoField(primary_key=True)
firstname = models.CharField(max_length=50)
middlename = models.CharField(max_length=1)
lastname = models.CharField(max_length=50)
city = models.CharField(max_length=200)
registe_dt = models.DateTimeField(default=timezone.now())
def __str__(self):
return '%s %s %s' % (self.studentId, self.firstname,self.city)


class Dept(models.Model):
deptId = models.AutoField(primary_key=True)
deptName = models.CharField(max_length=200)
def __str__(self):
return '%s %s' % (self.deptId, self.deptName)

class Course(models.Model):
courseId=models.AutoField(primary_key=True)
courseName=models.CharField(max_length=100)
student = models.ManyToManyField(Student)
dept = models.ForeignKey(Dept,on_delete=models.CASCADE)
def __str__(self):
return '%s %s %s %s' % (self.courseId, self.courseName,self.student.primary_key,self.dept.primary_key)

谢谢你的帮助约旦

最佳答案

插入外键值时可以直接插入student和dept实例:

student = Student.objects.last()
dept = Dept.objects.last()

course = Course.objects.create(courseName="My course", student=student, dept=dept)

.last() 是最后创建的,但您可以根据需要获取实例。


此外,您不需要手动创建主键。 Django 会自动为您完成。模型的每个实例都有一个自动分配的 pk 值。也就是说,如果您不需要不同名称的主键。所以 Course 中的 __str__ 方法可以是:

def __str__(self):
return '%s %s %s %s' % (self.courseId, self.courseName,self.student.pk,self.dept.pk)

关于Django 模型 - 使用 Shell 插入外键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48663464/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com