ModelForm не отображается в браузере
Я создаю форму для пользователей, чтобы они могли создавать объявления для страницы аукциона, но когда я нажимаю на ссылку с моей индексной страницы, чтобы перейти на страницу создания, я перенаправляюсь на страницу создания, но в браузере форма не отображается.
INDEX.HTML
<p>You can create your first auction here <a href={% url 'create_listing' %}>Add new</a></p>
URLS.PY
path("create/", views.create_listing, name="create_listing")
MODELS.PY
from django.contrib.auth.models import AbstractUser
from django.db import models
class User(AbstractUser):
pass
class Auction(models.Model):
title = models.CharField(max_length=25)
description = models.TextField()
current_bid = models.IntegerField(null=False, blank=False)
users_bid = models.IntegerField(null=False, blank=False)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
VIEWS.PY
from django.shortcuts import render, redirect
from django.template import context
from .forms import AuctionForm
from .models import User
def create_listing(request):
form = AuctionForm()
if request.method == 'POST':
form = AuctionForm(request.POST)
if form.is_valid:
form.save()
return redirect('index')
context = {'form': form}
return render(request, 'auctions/create-listing.html', context)
FORMS.PY
from .models import Auction
from django.forms import ModelForm
class AuctionForm(ModelForm):
class Meta:
model = Auction
fields = ['title', 'description', 'current_bid']
CREATE-LISTING.HTML
{% extends "auctions/layout.html" %}
{% block content %}
<form action="" method="post" class="ui form">
{% csrf_token %}
{{form.as_p}}
<input type="submit" class="ui button primary teal" value="Submit">
</form>
{% endblock %}
Ваша проблема связана с тем, куда вы импортировали форму modelform. Ниже приведено мое решение.
from .models import Auction
from django import forms
class AuctionForm(forms.ModelForm):
class Meta:
model = Auction
fields = ['title', 'description', 'current_bid']
Разобрался, проблема была в том, что я использовал {% block content %} вместо {% block body %}. Это решило проблему. Спасибо всем