Как я могу сделать Django рендеринга в браузере? - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь использовать функцию Django forms.ModelForm. Тем не менее, я не могу заставить его отображать в браузере (Firefox и Chrome проверено). При проверке кода в обоих браузерах таблица \ форма не отображается, и нет никаких ошибок, связанных с Django. Единственное, что видно из файла html - это кнопка «Сохранить». Что-то мне здесь не хватает?

В Models.py

from django.db import models


class Product_sell_create(models.Model):
    product_product_sell = models.CharField(max_length=120)
    product_price_sell = models.DecimalField(decimal_places=2, max_digits=500)
    product_volume_sell = models.DecimalField(decimal_places=2, max_digits=500)
    product_location_sell = models.CharField(max_length=120)
    product_description_sell = models.TextField(blank=False, null=False)

Forms.py

from django import forms
from .models import Product_sell_create

class ProductName(forms.ModelForm):
    class Meta:
        model = Product_sell_create
        fields = [
            'product_product_sell',
            'product_volume_sell',
            'product_price_sell',
            'product_location_sell',
            'product_description_sell'
        ]

Views.py

from django.shortcuts import render
from .forms import ProductName


def products_create_view(request):
    form = ProductName(request.POST or None)
    if form.is_valid():
        form.save()
        form = ProductName()

    context = {
        'form': form
    }

    return render(request, "sell.html", context)

продать. html

{% include 'navbar.html' %}
<h1> Upper test</h1>

<form>
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Save" />
</form>

<h1> TEST </h1>

{% block content %}
{% endblock %}

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

вы создали 'sell. html' внутри папки 'templates' в папке вашего приложения?

MyApp / templates / sell. html

0 голосов
/ 13 февраля 2020

только что сделал это, у вас также возникнут проблемы с отправкой вашего объекта:

views.py:

from django.shortcuts import render, redirect
from .forms import ProductName
from .models import Product_sell_create

def products_create_view(request):
    if request.method == 'POST':
        form = ProductName(request.POST)
        if form.is_valid():
            prod = form.save(commit=False)
            prod.save()
            return redirect('../thanks')
    else:
        form = ProductName()

        context = {
            'form': form
        }

        return render(request, "form_test.html", context)


def thanks_view(request):
    query = Product_sell_create.objects.all()
    return render (request, 'thanks.html', {'query' : query})

forms.py и models.py сохраняет то же самое

продать. html:

<h1> Upper test</h1>

<form method="POST">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Save" />
</form>

<h1> TEST2 </h1>

спасибо. html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>{{ query }}</h1>
    <h2>THANKS</h2>
</body>
</html>

enter image description here

...