'The requested resource was not found on this server.' error in django-rest-framework and pythonanywhere
Надеюсь, у вас все хорошо
У меня есть простой проект DRF, и я хочу развернуть его на Pythonanywhere
Я сделал все желаемые конфигурации, фотографии которых вы можете увидеть ниже
Но когда я хочу нажать на ссылку загруженной фотографии (нижняя фотография)
это мой api whit ссылка на картинку
Я сталкиваюсь с ошибкой "Запрашиваемый ресурс не был найден на этом сервере." (нижнее фото)
вот мой медиаконфиг pythonanywhere:
вот мои настройки медиа в settings.py:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_URL = '/pictures/'
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploaded_pictures')
вот мой код urls.py:
urlpatterns = [
path('admin/', admin.site.urls),
path('api-auth/', include('rest_framework.urls')),
path('api/', include('gardesh.urls'))
]
вот мой код models.py:
class Profile(models.Model):
owner = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.CharField(max_length=150, null=True, blank=False)
img = models.ImageField(upload_to='user/prof',null=False, blank=False)
def __str__(self):
return self.owner.username
class Post(models.Model):
owner = models.ForeignKey(User,on_delete=models.CASCADE)
cover = models.ImageField(upload_to='user/cover',null=False, blank=False)
caption = models.TextField(max_length=250, null=False, blank=False)
title = models.CharField(max_length=40, null=False, blank=False, default='no')
def __str__(self):
return self.title
class Comment(models.Model):
auther = models.ForeignKey(User, on_delete=models.CASCADE)
body = models.TextField(max_length=150, null=False, blank=False)
post = models.ForeignKey(Post, on_delete=models.CASCADE,related_name='comments')
published_date = models.DateTimeField(null=False, blank=False, auto_now_add=True)
parent = models.ForeignKey('self', on_delete=models.CASCADE, blank=True,
null=True, related_name='replys')
Вы можете увидеть весь мой код на моем GitHub: https://github.com/GrandNative/Api-gardesh
Спасибо за помощь
В PythonAnywhre вам также необходимо настроить сопоставление статических файлов на странице веб-приложения. Вам нужно перейти в раздел Static files и ввести тот же URL, что и MEDIA_URL в разделе url (в вашем случае /pictures/
) и путь из MEDIA_ROOT в разделе path (полный путь, включая /home/username/...
). Если остальные настройки в порядке, то после перезагрузки веб-приложения все должно работать. См. также эту страницу справки.