Невозможно вызвать функцию Django для вставки данных в postgres db - PullRequest
0 голосов
/ 06 января 2019

Я запускаю приведенный ниже код, однако, когда я отправляю шаблон create.html, он переходит непосредственно в home.html без вставки какой-либо записи в postgres db. Полагаю, функция «создать» вообще не вызывается. Пожалуйста, помогите

Я пытался направить функцию

* views.py *

from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from .models import Product

def home(request):
   return render(request, 'products/home.html')


@login_required
def create(request):
   if request.method =='POST':
        product = Product()
        product.title = request.POST['title']
        product.save()
        return redirect('home')
   else:
       return render(request, 'products/create.html')

* urls.py *

from django.urls import path,include
from . import views

urlpatterns = [
path('create',views.create,name='create'),] 

* models.py *

from django.db import models
from django.contrib.auth.models import User

class Product(models.Model):
    title = models.CharField(max_length=255)

    def __str__(self):
       return self.title

* apps.py *

from django.apps import AppConfig

class ProductsConfig(AppConfig):
   name = 'products'

* Основной URL.py *

from django.contrib import admin
from django.urls import path,include
from products import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.home, name='home'),
    path('products/', include('products.urls')),] 

* urls.py *

from django.urls import path,include
from . import views

urlpatterns = [
path('create',views.create,name='create'),]

* create.html *

{%extends 'base.html'%}

{%block content%}

<form method="POST" action="{% url 'create' %}" enctype =       "multipart/form-data">

{% csrf_token %}

Title:
<br/>
<input type="text"  name = "title"/>
<br/><br/>
<input type="submit" class = "btn btn-primary" value = "Add      Product"/>
</form>
{%endblock%}

Я ожидал, что запись будет вставлена ​​в базу данных (postgres), и я должен быть в состоянии проверить ее, используя страницу "администрирование django". Я могу добавить запись вручную через страницу администрирования django, но не через HTML-форму выше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...