2017-02-13 4 views
0

Мне нужно сделать страницу, которая может сэкономить много информации о студентах, например, когда мы хотим добавить нового пользователя/ученика, мы должны ввести какое-то обязательное поле. Я могу добавить и сохранить имя, фамилия, НЕТ и т. д., но я не могу сохранить много уроков для одного ученика, как эта картина. my pagecreat 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 FormSets. Возьмите добычу на Django Formsets.

Или, если вы хотите использовать только Джанго администратора, вы должны изменить свой код:

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

спасибо..активно я код view.py, и я могу сохранить некоторую информацию, такую ​​как имя, НЕТ. и т. д., и я знаю официальный сайт Django, но моя проблема заключается в том, как сэкономить много вариантов на одну вещь ... например, у меня есть 2 урока, и каждый урок имеет имя_кода и статус успеха ... в любом случае Форматы будут полезны ... –

Смежные вопросы