Я использовал Django представления на основе классов для создания простого веб-приложения. В этом приложении пользователь указывает длину и ширину здания, приложение вычисляет площадь и сохраняет ее в базе данных. После отправки пользователь перенаправляется на страницу «результатов», где он может видеть свои входные данные и результат.
Я не уверен, как реализовать такую функцию вычисления в общих c представлениях.
Мои модели:
from django.db import models
class Building(models.Model):
length = models.IntegerField(default=1)
width = models.IntegerField(default=1)
area = models.IntegerField(default=1)
def __str__(self):
return self.name
Мои формы:
from django import forms
from .models import Building
class BuildingForm(forms.ModelForm):
class Meta:
model = Building
fields = ('length', 'width', 'area')
Мои просмотры:
from django.views.generic import ListView, CreateView, UpdateView
from django.urls import reverse, reverse_lazy
from .models import Building
from .forms import BuildingForm
from django.http import HttpResponseRedirect, HttpResponse
class BuildingListView(ListView):
model = Building
context_object_name = 'buildings'
class BuildingCreateView(CreateView):
model = Building
form_class = BuildingForm
success_url = reverse_lazy('results')
class BuildingUpdateView(UpdateView):
model = Building
form_class = BuildingForm
success_url = reverse_lazy('building_changelist')
def calculation(request):
length = request.POST.get('length', False)
width = request.POST.get('width', False)
area = length * width
Building.objects.create(length=length, width=width, area=area,)
return HttpResponseRedirect(reverse('results'))
Может кто-нибудь поделиться хорошим примером, связанным с моим вопросом, или помочь мне реализовать эту функцию в моем файле просмотров?