【发布时间】:2019-02-12 15:30:01
【问题描述】:
我正在尝试实现 Student 已连接到用户分配已连接到 Student。
Django 迁移问题。
django.db.utils.IntegrityError:唯一约束失败:Student_student.user_id
models.py 文件
models.py
from django.db import models
from django.utils import timezone
from django.core.validators import MinLengthValidator,MaxValueValidator
from django.contrib.auth.models import User
# Create your models here.
class Student(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE,primary_key=True,default=111111)
student_name = models.CharField(max_length = 20)
student_address = models.TextField()
student_bloodgrp = models.CharField(max_length = 3)
#This will be used to upload image of student in some directory not in database
student_image = models.ImageField(upload_to ='profile_pic/')
student_mail = models.EmailField()
student_dob = models.DateTimeField()
student_branch = models.CharField(max_length = 3)
student_reg_no = models.IntegerField(validators=[MaxValueValidator(9999999999)])
student_mob = models.IntegerField(validators=[MaxValueValidator(9999999999)])
student_sem = models.IntegerField(validators=[MaxValueValidator(8)])
student_accom = models.CharField(max_length = 1) # y for boarders & n for non-boarders
class Meta:
verbose_name_plural = "Students"
class Subjects(models.Model):
subjectName = models.CharField(max_length=100,primary_key=True)
branch = models.CharField(max_length=100)
semester = models.IntegerField()
class Meta:
verbose_name_plural = "Subjects"
def __str__(self):
return self.subjectName+"--"+self.branch+"--"+str(self.semester)
class Assignments(models.Model):
student = models.ForeignKey(Student,on_delete=models.DO_NOTHING)
subject = models.ForeignKey(Subjects,on_delete=models.DO_NOTHING)
document = models.FileField(upload_to='assignments/')
class Meta:
verbose_name_plural = "Assignments"
def __str__(self):
return self.student.student_name
这里是forms.py
forms.py
from django import forms
from .models import Assignments
class AssignmentForm(forms.ModelForm):
class Meta:
model = Assignments
fields = ('student', 'document','subject' )
******************************************************************
views.py here
views.py
from django.shortcuts import render,redirect
from .forms import AssignmentForm
from django.contrib.auth.decorators import login_required
def mainStudent(request):
return render(request,'Student/main.html')
def masterStudent(request):
return render(request,'Student/master.html')
@login_required
def uploadAssignment(request):
if request.method == 'POST':
form = AssignmentForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('student-main')
else:
form =AssignmentForm()
return render(request, 'Student/upload_Assignment.html', {
'form': form
})
我希望学生用户 ID 和密码连接到 User 。 分配第一个字段为学生。
【问题讨论】:
标签: django