【问题标题】:Django - Form not populating in models but no error in consoleDjango - 表单未填充模型但控制台没有错误
【发布时间】:2022-11-02 02:10:17
【问题描述】:

我正在创建一个 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(),

        }

【问题讨论】:

    标签: python django django-models django-views


    【解决方案1】:

    确保您已在 HTML 中添加表单 action 并将其分配给 urls.py 中的 create_activity 函数 URL。

    例如,在您的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**'),
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 2016-06-15
      • 1970-01-01
      • 2014-06-11
      相关资源
      最近更新 更多