Django - Форма не заполняется в моделях, но в консоли нет ошибки
Я создаю приложение Django и испытываю некоторые трудности с созданием "действий" через фронтенд. (CRUD-приложение)
Ранее у меня были проблемы, связанные с ForeignKey
для хоста; для этого я использовал расширенный AllAuth models
(под названием UserProfile
), и ошибки для этого, похоже, были устранены, однако, в функциональности по-прежнему что-то идет не так.
В настоящее время я пытаюсь добиться того, чтобы отправленные данные передавались из формы в бэкенд, но в окне консоли/терминала при запуске приложения нет никаких ошибок.
views.py
:
def create_activity(request):
userprofile = get_userprofile(request)
if request.method == "POST":
form = ActivityForm(request.POST, instance=userprofile)
if form.is_valid():
form.save()
return redirect('activities')
else:
form = ActivityForm(instance=userprofile)
context = {
'form': form,
}
return render(request, 'activities/new_listing.html', context)
Вместе с моим forms.py
файлом:
from datetime import date
from django import forms
from .models import Activity
from .widgets import DatePickerInput, TimePickerInput
class ActivityForm(forms.ModelForm):
class Meta:
model = Activity
fields = ('name', 'date',
'start_time', 'end_time',
'location', 'description')
labels = {
'name': 'Activity Type',
'date': 'Date of Activity',
'start_time': 'Start Time',
'end_time': 'End Time',
'location': 'Location',
'description': 'Description',
}
widgets = {
'date' : DatePickerInput(),
'start_time' : TimePickerInput(),
'end_time' : TimePickerInput(),
}
убедитесь, что в HTML добавлена форма "action" и присвойте ее URL функции create_activity в urls.py, например:
В вашем файле new_listing.html:
<form method="post" action="{% url '**yourFunctionUrl**' %}">
{% csrf_token %}
{{ form.as_p }}
</form>
В urls.py
from django.urls import path
from django.contrib.auth import views as auth_views
from . import views
urlpatterns = [
path('SomeURL', views.create_activity, name='**yourFunctionUrl**'),