Django Python: Загрузка изображений не работает не работает

Я работаю над сайтом социальной сети, базовый код взят из проекта с открытым исходным кодом на GitHub. В базовом проекте вы можете размещать только текст.

Я искал в интернете и нашел инструкцию по реализации img upload.

Но это не работает, потому что я получаю много кодов ошибок.

Код ошибки:

AttributeError: module 'django.forms' has no attribute 'Post'

Мой код: forms.py

from django import forms
from django.forms import fields
from .models import Post, Comment

class Post(forms.Post): 
  
    class Meta: 
        model = Post
        fields = ['name', 'Main_Img']

posts.py

""" Home page with all posts """
def first(request):
    context = {
        'posts':Post.objects.all()
    }
    return render(request, 'blog/first.html', context)

""" Posts of following user profiles """
@login_required
def posts_of_following_profiles(request):

    profile = Profile.objects.get(user = request.user)
    users = [user for user in profile.following.all()]
    posts = []
    qs = None
    for u in users:
        p = Profile.objects.get(user=u)
        p_posts = p.user.post_set.all()
        posts.append(p_posts)
    my_posts = profile.profile_posts()
    posts.append(my_posts)
    if len(posts)>0:
        qs = sorted(chain(*posts), reverse=True, key=lambda obj:obj.date_posted)

    paginator = Paginator(qs, 50)
    page = request.GET.get('page')
    try:
        posts_list = paginator.page(page)
    except PageNotAnInteger:
        posts_list = paginator.page(1)
    except EmptyPage:
        posts_list = paginator.page(paginator.num_pages)
  
    return render(request,'blog/feeds.html',{'profile':profile,'posts':posts_list})

urls.py

urlpatterns = [...]
if settings.DEBUG:
 urlpatterns += static (settings.MEDIA_URL,
                              document_root = settings.MEDIA_ROOT)

models.py

""" Post model """
class Post(models.Model):
    title = models.CharField(max_length=150)
    content = RichTextField(blank=True, null=True)
    Main_Img = models.ImageField(upload_to='media/images/') 
    date_posted = models.DateTimeField(default=timezone.now)
    date_updated = models.DateTimeField(auto_now=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    likes = models.ManyToManyField(User, related_name="blogpost", blank=True)
    saves = models.ManyToManyField(User, related_name="blogsave", blank=True)

    def total_likes(self):
        return self.likes.count()

    def total_saves(self):
        return self.saves.count()

    def __str__(self):
        return self.title

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

post_form.py

<div class="m-auto w-100 container">
    <div class="content-section">
        <form method = "post" enctype="multipart/form-data"> 
            {% csrf_token %} 
            {{ form.as_p }} 
            <button type="submit">Upload</button> 
        </form>
    </div>
    </div>

Вот сайт, с которого я взял код для загрузки изображений: https://de.acervolima.com/python-bilder-in-django-hochladen

У меня есть вопросы, чтобы реализовать их стенд.

Моя проблема заключается в том, чтобы синхронизировать код с сайта с уже существующим кодом.

from django import forms  # <----------------------- module 'django.forms'
from django.forms import fields
from .models import Post, Comment

class Post(forms.Post):   # <----------------------- has no attribute 'Post'
    # ...

AttributeError: модуль 'django.forms' не имеет атрибута 'Post'

Сообщение об ошибке вполне объяснимо: вы пытаетесь наследовать от класса с именем Post из django.forms, но в Post.django.forms нет класса

Проблема в том, что в модуле Post нет класса с именем django.forms.

Я не уверен, на какой пример вы ссылаетесь, так как https://de.acervolima.com/python-bilder-in-django-hochladen возвращает 404 not found, но я предполагаю, что вы заменили имя какого-то класса в примере.

В Django загрузка файлов может быть реализована с помощью FileField в django.forms

Эти документы могут помочь.

https://docs.djangoproject.com/en/4.0/topics/http/file-uploads/ https://docs.djangoproject.com/en/4.0/ref/forms/api/#binding-uploaded-files

Вернуться на верх