0

当我提交表单时,它不会发布表单数据而只是重新加载表单。它事先可以工作,但我不确定我所做的更改是否使它不再工作。通过管理员发布数据仍然可以正常工作。

我能看到的唯一“错误”消息在终端中: 可以在这里看到

它也发送一个 get 请求而不是一个 post 请求。我还通过删除 JS 和引导 CDN 对其进行了测试,但问题仍然相同。

我的代码如下:

这是我的意见.py

def create(request):
if request.method == 'POST':
    form = EventCreateForm(request.POST, request.FILES)
    if form.is_valid():.
        instance = form.save(commit=False)
        instance.author = request.user
        instance.save()
        instance.save_m2m()
        return redirect('event:home')
else:
    form = EventCreateForm()
return render(request, 'event/create.html', {'form': form})

创建.html

{% extends "base.html" %}

{% load crispy_forms_tags %}


{% block content %}

{{ form.media }}
<div class="container-fluid">
    <div class="col-md-4">
        <div class="page-header">
            <p> Create an event!</p>
        </div>
        <form  method="post" action="" enctype="multipart/form-data">
                {% csrf_token %}
            {{ form | crispy}}

            <button type="submit">Submit</button>
            <br>
            <br>
        </form>
    </div>
</div>



{% endblock %}

Base.html

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">





<script src="https://code.jquery.com/jquery-3.2.1.min.js" crossorigin="anonymous" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" crossorigin="anonymous" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" crossorigin="anonymous" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"></script>


<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">




{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'event/css/custom.css' %}">
        <title>Django Project</title>
    </br>
    <div class="container-fluid" style='font-family:arial'>
        <center>
            <h2> Welcome to the django website!</h2>
        </center>
    </div>
    {{ form.media }}
</head>



<!-- body of the text -->
    <body>

        {% if messages %}
            {% for messages in messages %}
                {{ message }}
            {% endfor %}
        {% endif %}

        {% if user.is_authenticated %}
    <nav class="navbar navbar-expand-md navbar-dark bg-dark sticky-top">
        <div class="navbar-nav">
            <a class="nav item nav-link active" href="{% url 'event:home' %}">Home</a>
            <a class="nav item nav-link" href="{% url 'profiles:profile' %}">Profile</a>
            <a class="nav item nav-link" href="{% url 'profiles:edit' %}">Edit profile</a>
            <a class="nav item nav-link" href="{% url 'event:create' %}">Create</a>
            <a class="nav item nav-link" href="{% url 'profiles:logout' %}">Logout</a>
            <form class="form-inline my-2 my-lg-0">
                <input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
                <button class="btn btn-success" type="submit">Search</button>
        </div>

        {% else %}
            <a href="{% url 'profiles:login' %}">Login</a>
            <a href="{% url 'profiles:register' %}">Register</a>
        {% endif %}
    </nav>
        {% block content %}




        {% endblock %}




    </body>
</html>

模型.py

class Event(models.Model):
    title = models.CharField(max_length=100)
    link = models.TextField()
    author = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
    image = models.ImageField(default='default.jpg', upload_to='event_images')
    image_thumbnail = ImageSpecField(source='image',
                                        processors=[ResizeToFill(100, 100)],
                                        format='JPEG',
                                        options={'quality': 60})
    start = models.DateField(blank=True, null=True)
    start_time = models.TimeField(blank=True, null=True)
    end = models.DateField(blank=True, null=True)
    end_time = models.TimeField(blank=True, null= True)
    description = HTMLField('description')
    tags = models.ManyToManyField(Tags)
    subject = models.ManyToManyField(Subject)
    attendees = models.ManyToManyField(User, related_name = 'attendees', blank=True)

    def __str__(self):
        return f'{self.title}'

    def get_absolute_url(self):
        return reverse('event:detail', kwargs={'pk': self.pk})

提前感谢大家,所有帮助将不胜感激!

4

3 回答 3

0

我也有这样的问题。我通过删除包含<div class="form-group>"在我的表单周围的引导类(更准确地说)的 div 标签来解决它。

于 2021-07-06T08:19:51.530 回答
0

您可能已删除您的操作。试试把网址加回去?

  <form  method="post" action="{% url "event:create" %}" enctype="multipart/form-data">
于 2018-12-16T12:48:39.993 回答
0

我也存在同样的问题,您犯的愚蠢错误是您的 create.html 文件中的按钮,将其替换为输入 tap 类型为 submit 和 class btn,按钮不提交请求试试这个:

<input type="submit" class="btn btn-primary" value="Submit">

我知道有点晚了,但这似乎有帮助

于 2021-08-23T17:50:03.050 回答