Когда в моем браузере нажата кнопка «Добавить», он автоматически сохраняет имя (Модуль 1), текущую дату и местоположение (Сектор 1) в базе данных.
Вот мои коды, так чтодалеко:
models.py
from django.db import models
from django.utils import timezone
class Alert(models.Model):
module = models.ForeignKey(Module, on_delete = models.CASCADE, default='Module 1')
date = models.DateTimeField(default = timezone.now)
location = models.CharField(max_length=10, default='Sector 1')
def __str__(self):
return self.module
views.py
from django.shortcuts import render
from django.contrib import messages
from django.views.generic import ListView
from .models import Alert, Module
from .forms import AlertForm
def home(request):
context = {
'modules': Module.objects.all(),
'alerts': Alert.objects.all(),
}
if request.method == 'POST':
form = AlertForm(request.POST or None)
if form.is_valid():
form.save()
messages.success(request, ('Item has been successfully added to the database!'))
return render(request, 'home/home.html', context)
return render(request, 'home/home.html', context)
def alert(request, module_id):
try:
mdl = Module.objects.get(id=module_id)
except Module.DoesNotExist:
mdl = None
context = {
'module': mdl,
'alerts': Alert.objects.all()
}
return render(request, 'home/alert.html', context)
home.html
<div class="container">
<form method="POST">{% csrf_token %}
<input type="submit" value="Add">
</form>
</div>
Обновление: вот мой коддля urls.py
from django.urls import path
from . import views
from .views import AlertListView
urlpatterns = [
path('', views.home, name='home'),
path('alert/<int:module_id>/', views.alert, name='module'),
]