Django обновление базы данных с использованием формы редактирования - PullRequest
0 голосов
/ 28 апреля 2020

Я новичок ie до Django, и это мое первое Django веб-приложение.

Я создал систему управления студентами, где администратор может добавлять студентов.
Я создал форму на главной странице, где студент может ввести свой идентификатор регистрации и дату рождения, и будет перенаправлен на страницу редактирования формы. , Теперь я хочу знать, что, как обновить запись новыми значениями, предоставленными пользователем, я понятия не имею, куда писать запросы SQLite (я не изменил ни одного параметра БД, и я красный, что Django по умолчанию использует SQLite БД) или как обработать запрос.
Буду признателен за любую помощь.

models.py

class Student(models.Model):
  gender_choices = [('M', 'Male'), ('F', 'Female')]
  enrollment_no = models.CharField(max_length=10, primary_key=True, unique=True)
  first_name = models.CharField(max_length=50)
  last_name = models.CharField(max_length=50)
  father_name = models.CharField(max_length=50)
  mother_name = models.CharField(max_length=50)
  address = models.CharField(max_length=200)
  dob = models.DateField('date of birth')
  gender = models.CharField(choices=gender_choices,max_length=1,default=None)

  def __str__(self):
    return (self.first_name +" "+ self.last_name)

ФОРМА РЕГИСТРАЦИИ СТУДЕНТА (индекс . html page)

  <form action="{% url 'students:detail' %}" method="get">
    <div class="form-group">
      <label for="enrollmentid">Enrollment ID: </label>
      <input type="text" class="form-control" name="enrollmentid" id="enrollmentid" placeholder="Enter enrollment id" required>
    </div>
    <div class="form-group">
      <label for="dob">Date of Birth: </label>
      <input type="text" class="form-control" name="dob" id="dob" placeholder="Enter dob (YYYY-MM-DD)" required>
    </div>
    <button class="btn btn-primary">Edit Details</button>
  </form>

urls.py

app_name = 'students'
urlpatterns = [
    path('', views.index, name='index'),
    path('detail/', views.detail, name='detail')
]

view.py

# Show a student login form
def index(request):
  return render(request, 'students/index.html')

# SHow a student edit page
def detail(request):
  try:
    student = Student.objects.get(pk=request.GET.get('enrollmentid'), dob=request.GET.get('dob'))
  except Student.DoesNotExist:
    raise Http404("Student do not exist")
  return render(request, 'students/detail.html', {'student': student})

ФОРМА РЕДАКТИРОВАНИЯ (подробно. html страница)

   <form action="" method="post">
      {% csrf_token %}
      <div class="form-group">
        <label for="fname">First Name: </label>
        <input type="text" class="form-control" name="fname" id="fname" value="{{ student.first_name }}" required>
      </div>
      <div class="form-group">
        <label for="lname">Last Name: </label>
        <input type="text" class="form-control" name="lname" id="lname" value="{{ student.last_name }}" required>
      </div>
      <div class="form-group">
        <label for="fathername">Father Name: </label>
        <input type="text" class="form-control" name="fathername" id="fathername" value="{{ student.father_name }}" required>
      </div>
      <div class="form-group">
        <label for="mothername">Mother Name: </label>
        <input type="text" class="form-control" name="mothername" id="mothername" value="{{ student.mother_name }}" required>
      </div>
      <div class="form-group">
        <label for="address">Address: </label>
        <input type="text" class="form-control" name="address" id="address" value="{{ student.address }}" required>
      </div>
      <a href="{% url 'students:index' %}" class="btn btn-secondary">Go Back</a>
      <button type="submit" class="btn btn-primary">Submit!</button>
    </form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...