КАК РЕДАКТИРОВАТЬ ЗАПИСЬ ИСПОЛЬЗОВАТЬ DJANGO ФОРМА В ШАБЛОН - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть две модели, которые имеют отношение друг к другу: ребенок и академия модель, которая означает, что ребенок может есть данные Academi c, а затем я передаю идентификатор ребенка в шаблон для редактирования Academi c Детали ребенка

здесь модель академии

#ACADEMY MODEL
from child.models import Child_detail
class Academic(models.Model):
    Student_name = models.ForeignKey(Child_detail,on_delete = models.CASCADE)
    Average_grade = models.CharField(max_length = 10)
    Overall_position = models.IntegerField()
    Total_number_in_class = models.IntegerField()
    def __str__(self):
        return str(self.Student_name)

вот модель ребенка

#CHILD MODEL
from django.db import models

class Child_detail(models.Model):
    Firstname = models.CharField(max_length = 50)
    Lastname = models.CharField(max_length = 50)
    Tribe = models.CharField(max_length = 50)
    Current_Address = models.CharField(max_length = 50)

    def __str__(self):
        return self.Firstname

Я пришел к сценарию, в котором я хочу отредактировать сведения о ребенке c, используя форму django, в шаблон, в котором я передаю идентификатор ребенка

def edit(request,pk):
    child=get_object_or_404(Child_detail,pk=pk)
    form=AcademicForm(request.POST or None,instance=child)
    if form.is_valid():
        form.instance.Student_name=child
        form.save()
        return redirect('more',pk=pk)
    context={
        'form':form
    }
    return render(request,'functionality/more/academy/edit.html',context)    

И вот мой файл form.py

class AcademicForm(forms.ModelForm):
    class Meta:
        model=Academic
        fields='Class','Date','Average_grade','Overall_position','Total_number_in_class'
        labels={
            'Average_grade':'Average Grade',
            'Overall_position':'Overall Position',
            'Total_number_in_class':'Total Number In Class'
        }

    Date = forms.DateField(
    widget=forms.TextInput(     
        attrs={'type': 'date'} 
    )
        )

А также это мой шаблон, передающий идентификатор ребенка

            <form action="" method="post" autocomplete="on">
            {% csrf_token %}
            <div class="form-group">
              {{form}}
              <input type="submit" value="Save" class="btn btn-primary btn-block">
            </form>

1 Ответ

0 голосов
/ 01 апреля 2020

после проверки формы

if form.is_valid(): 
      form.Student_name=child
      form.save()
...