Как я могу вызвать несколько представлений по одному URL-адресу в Django?Python

Программы на Python
Ответить
Anonymous
 Как я могу вызвать несколько представлений по одному URL-адресу в Django?

Сообщение Anonymous »

Я пытаюсь показать формы, определенные new_measurement в index.html, но мне удается заставить работать только IndexView(). Я пробовал различные комбинации между IndexView() и new_measurement(), но они совсем не сработали. Я знаю, что IndexView() не передает ничего, связанного с new_measurement(), и new_measurement() не вызывается, и это является сутью моей проблемы. Я был бы очень признателен, если бы кто-нибудь более опытный в Django рассказал мне, что я могу или должен делать. Спасибо.

Вот мой views.py:

from django.shortcuts import render
from django.utils import timezone
from .models import Measurement
from .forms import MeasurementForm
from django.views import generic

class IndexView(generic.ListView):
model = Measurement
context_object_name = 'measurement_list'
template_name = 'index.html'
queryset = Measurement.objects.all()

def new_measurement(request):
if request.method == "POST":
form = MeasurementForm(request.POST)
if form.is_valid():
measurement = form.save(commit=False)
measurement.measurement_date = timezone.now()
measurement.save()
else:
form = MeasurementForm()

return render(request, 'index.html', {'form': form})


urls.py:

from django.urls import path
from . import views

urlpatterns = [
path('', views.IndexView.as_view(), name='index'),
]


forms.py:

class MeasurementForm(forms.ModelForm):
class Meta:
model = Measurement
fields = ('measurement_value', 'measurement_unit')


index.html:

{% extends "base.html" %}

{% block content %}
Climate Measurement Tool

Add a new measurement

{% csrf_token %}
{{ form.as_p }}
Add


Measurements
{% if measurement_list %}
  • {% for measurement in measurement_list %}
  • {{ measurement }}

    {% endfor %}
{% else %}
No measurements yet
{% endif %}
{% endblock %}


Подробнее здесь: https://stackoverflow.com/questions/487 ... -in-django
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»