2017-02-13 139 views
0

我需要做一个页面,可以节省很多学生的信息,例如当我们想添加一个新的用户/学生时,我们应该输入一些必填字段..实际上我可以添加和保存名字,姓氏,NO等等,但是我不能为像这张照片这样的学生保存许多课程。 my page创建views.py管理页面

我想要的是我的项目视图。我尝试了很多算法,但我不能保存到数据库/管理页面。 我admin.py

from django.contrib import admin 
from .models import Students 

class StudentsAdminInline(admin.TabularInline): 
     model =Students 

class StudentsAdmin(admin.ModelAdmin): 
    list_display = ["__str__","o_no","f_name","l_name","University","date","timestamp","update"] 
    inlines = [StudentsAdminInline] 
    admin.site.register(Students) 

我model.py

from django.db import models 

class Students (models.Model): 
    email=models.EmailField() 
    f_name=models.CharField(default="",max_length=50) 
    l_name = models.CharField(default="",max_length=50,blank=False) 
    o_no=models.CharField(default="",null=False,max_length=50) 
    University=models.CharField(default="",max_length=50) 
    date=models.DateField(editable=True,null=True) 
    timestamp=models.DateTimeField(auto_now_add=True,auto_now=False) 
    update=models.DateTimeField(auto_now_add=False,auto_now=True) 


    def __str__(self): 
     return '{}'.format(self.id) 

class Student (models.Model): 
    student=models.ForeignKey(Students,related_name='items') 
    Lessons=models.CharField(default="",max_length=50,blank=False) 
    Code=models.DecimalField(max_digits=2, decimal_places=1,null=True) 
    Success=models.CharField(default="",max_length=50,blank=False) 
    def __str__(self): 
     return '{}'.format(self.id) 

我forms.py

class students_form_admin(forms.ModelForm): 
    class Meta: 
     model=Students 
     fields=["__str__","o_no","f_name","l_name","University","date","timestamp","update"] 


class student_form_admin(forms.ModelForm): 
    class Meta: 
     model=Student 
     fields=["Lessons","Code","Success"] 

回答

0

您需要使用Django表单集。以一个战利品在Django Formsets.

或者,如果你希望只使用Django管理,您应该更改您的代码:

admin.py:

from django.contrib import admin 
from .models import Student, Lesson 


class StudentAdminInline(admin.TabularInline): 
     model =Lesson 

@admin.register(Student) 
class StudentAdmin(admin.ModelAdmin): 
    list_display = ["__str__","o_no","f_name","l_name","University","date","timestamp","update"] 
    inlines = [StudentAdminInline] 

models.py:

from django.db import models 

class Student (models.Model): 
    email=models.EmailField() 
    f_name=models.CharField(default="",max_length=50) 
    l_name = models.CharField(default="",max_length=50,blank=False) 
    o_no=models.CharField(default="",null=False,max_length=50) 
    University=models.CharField(default="",max_length=50) 
    date=models.DateField(editable=True,null=True) 
    timestamp=models.DateTimeField(auto_now_add=True,auto_now=False) 
    update=models.DateTimeField(auto_now_add=False,auto_now=True) 


    def __str__(self): 
     return '{}'.format(self.id) 

class Lesson (models.Model): 
    student=models.ForeignKey(Student,related_name='items') 
    name=models.CharField(default="",max_length=50,blank=False) 
    Code=models.DecimalField(max_digits=2, decimal_places=1,null=True) 
    Success=models.CharField(default="",max_length=50,blank=False) 
    def __str__(self): 
     return '{}'.format(self.id) 

forms.py:

from .models import Student, Lesson 

class students_form_admin(forms.ModelForm): 
    class Meta: 
     model=Student 
     fields=["__str__","o_no","f_name","l_name","University","date","timestamp","update"] 


class student_form_admin(forms.ModelForm): 
    class Meta: 
     model=Lesson 
     fields=["Lessons","Code","Success"] 
+0

谢谢你,我认为Formsets将会非常有帮助... –

0

好吧,我会建议你阅读如何创建一个视图。 Django网站提供了大量有用的信息。 Here是创建视图的文档。

至于保存到数据库。 Here是有关在项目中设置和使用数据库的文档。 This link将向您展示如何使用模型和对象来保存视图中的数据。

Django网站有各种信息可以帮助你。

+0

谢谢你..其实我代码一个views.py,我可以保存一些信息,如名称,没有。等等。我知道Django的官方网站,但我的问题是如何将许多选项保存到一件事情..就像我有2节课,每节课有一个code_name和成功状态...无论如何 Formsets将有帮助... –