Я новичок в Django rest framework, я привык к разработке API в .net
Я хочу создать 2 API, один из которых получает получает статью и изображение, связанные с ним по pk id, и один пост , который добавляет статью и фотографию, я пробовал разные методы, но не смог получить то, что я хочу, если кто-то может помочь или поделиться каким-либо сайтом, где я могу узнать такую вещь, это было бы здорово, заранее спасибо
PS: select_related дает только идентификатор модели статьи.
Это мои 2 модели:
from django.db import models
class Article(models.Model):
Heading = models.CharField(max_length=200, null=True)
Article = models.TextField(null=True)
CreatedBy = models.IntegerField(null=True)
CreatedDate = models.DateTimeField(null=True)
IsDeleted = models.BooleanField(default=False)
class ArticleImage(models.Model):
Image = models.ImageField(upload_to='photos/', null=True)
ImageArticle = models.ForeignKey(Article, on_delete=models.CASCADE)
а это мои сериализаторы:
from rest_framework import serializers
from .models import Article, ArticleImage
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = ('id', 'Heading', 'Article')
class ArticleImageSerializer(serializers.ModelSerializer):
class Meta:
model = ArticleImage
fields = ('id', 'Image', 'ImageArticle')
и вот мои взгляды:
from django.shortcuts import render
from django.views import View
from rest_framework import views
from rest_framework import viewsets
from .models import Article, ArticleImage
from .serializers import ArticleSerializer, ArticleImageSerializer
from itertools import chain
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from django.http import Http404
class ArticleView(viewsets.ModelViewSet):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
class ArticleImageView(viewsets.ModelViewSet):
queryset = ArticleImage.objects.all()
serializer_class = ArticleImageSerializer
class ArticleWImage(viewsets.ModelViewSet):
queryset = ArticleImage.objects.all().select_related()
serializer_class = ArticleImageSerializer
class ImageWArticle(viewsets.ModelViewSet):
queryset = Article.objects.select_related()
serializer_class = ArticleSerializer
class ArticleList(APIView):
def get(self, request):
article = Article.objects.all()
article_image = ArticleImage.objects.all()
return render(request, {
'article': article,
'articleImage': article_image
})
URL-адрес:
from django.urls import path, include
from . import views
from rest_framework import routers
router = routers.DefaultRouter()
router.register('articles', views.ArticleView)
router.register('articleImage', views.ArticleImageView)
router.register('articleWithImage', views.ArticleWImage)
router.register('imageWithArticle', views.ImageWArticle)
urlpatterns = [
path('', include(router.urls)),
path('articleImageGet/', views.ArticleList.as_view())
]