Форма модели не отображается в шаблоне django

Мой models.py и это моя модель для фотографий.

       # home photo page
    class Photos(models.Model):
        photo_title = models.CharField(max_length=50, blank=False)
        photo_description = models.CharField(max_length=50, blank=False)
        photo_date = models.DateField(blank=False)
        photo_location = models.CharField(max_length=50, blank=False)
        photo_file = models.FileField(upload_to='photos', blank=False)
    
        def __str__(self):
            return self.photo_title

Мой forms.py это модель формы, которую я сделал, чтобы отобразить ее как форму.

    class UploadPhotosForm(forms.Form):
    
        class Meta:
            model = Photos
            fields = '__all__'
    

my views.py это мои релевантные импорты и секции, которые я закодировал в файле представления.

from .forms import CampForm, ProjectForm, HikeForm, UploadPostsForm, UploadPhotosForm

    posts = UploadPostsForm()
    photo = UploadPhotosForm()

    print(photo.as_p())

Здесь этот код должен вывести форму в виде текста в консоль, не так ли? Но у меня нет никакого консольного вывода. Похоже, что переменная photo ничего не инициализировала, не так ли? Я понятия не имею, что произошло.

    context = {
        'title': 'manage_wall',
        'posts': posts,
        'photo': photo,
    }
    return render(request, 'manager/manage_wall.html', context)

Мой шаблон

{% block content %}
<div class="container">
    <div class="row">
        <div class="col">
            <form action="" method="post">
                {% csrf_token %}
                {{photo.as_p}}
                <input type="submit" value="Add">
            </form>
        </div>
        <div class="col">
            <form action="" method="post">
                {% csrf_token %}
                {{posts.as_p}}
                <input type="submit" value=" Add">
            </form>
        </div>
    </div>
</div>
{%endblock %}

enter image description here

Как вы можете видеть здесь мой photoForm не отображается во фронтенде, может ли кто-нибудь указать на ошибку, которую я сделал, не отображая только эту форму, в то время как другие формы успешно отображаются во фронтенде. Мой вопрос в том, что все остальные формы модели успешно отображаются, почему эта не отображается должным образом.

Я нашел ответ в models.py там должно быть forms.ModelForm

class UploadPhotosForm(forms.ModelForm):

class Meta:
    model = Photos
    fields = '__all__'

это не рендеринг, если это не ModelForm

Ваш UploadPhotosForm наследуется от forms.Form(...). класс, который не содержит model в Meta классе, поэтому вместо наследования от forms.Form класса наследуется от form.ModelForm(...)

вот финальная версия вашего кода

 class UploadPhotosForm(forms.ModelForm):
     class Meta:
         model = Photos
         fields = '__all__'
Вернуться на верх