Форум сайта python.su
Есть маленький проект - API Блога с комментариями.
Когда пытаюсь удалить статью появляется такая вот ошибка:
Exception Type: OperationalError
Exception Value: no such column: newsList_comment.article_id
Где искать эту колонку “newsList_comment.article_id”, как быть?
И кроме того, не могу понять как связать правильно “комментарии к статьям” со “статьями”, чтобы можно было их добавлять и просматривать?
Структура проекта:
├───newsList
│ │ admin.py
│ │ apps.py
│ │ models.py
│ │ serializers.py
│ │ tests.py
│ │ urls.py
│ │ views.py
│ │ __init__.py
│ │
│ ├──migrations
│ 0001_initial.py
│ __init__.py
│
│
└───NewsToday
asgi.py
settings.py
urls.py
wsgi.py
__init__.py
models.py
from django.db import models from django.contrib.auth.models import User class Article(models.Model): title = models.CharField(max_length=120) link = models.URLField() created = models.DateTimeField(auto_now_add=True) upvotes = models.IntegerField(default=0) author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='articles') def __str__(self): return self.title class Comment(models.Model): article = models.ForeignKey(Article, on_delete=models.CASCADE, related_name='comments') name = models.CharField(max_length=80) content = models.TextField() created = models.DateTimeField(auto_now_add=True) def __str__(self): return self.content
from rest_framework import viewsets from .models import Article, Comment from .serializers import ArticleSerializer, CommentSerializer class ArticleViewSet(viewsets.ModelViewSet): serializer_class = ArticleSerializer queryset = Article.objects.all() class CommentViewSet(viewsets.ModelViewSet): serializer_class = CommentSerializer queryset = Comment.objects.all()
from rest_framework import serializers from .models import Article, Comment class ArticleSerializer(serializers.ModelSerializer): class Meta: model = Article fields = ('id', 'title', 'link', 'created', 'upvotes', 'author') class CommentSerializer(serializers.ModelSerializer): class Meta: model = Comment fields = ('article', 'name', 'content', 'created')
from rest_framework.routers import DefaultRouter from .views import ArticleViewSet, CommentViewSet router = DefaultRouter() router.register(r'news', ArticleViewSet) router.register(r'comments', CommentViewSet) urlpatterns = router.urls
Офлайн
Ivan_RoПохоже, что столбца article_id нет в твоей таблице
Exception Type: OperationalError
Exception Value: no such column: newsList_comment.article_id
python manage.py makemigrations python manage.py migration
Ivan_RoПопробуй так
И кроме того, не могу понять как связать правильно “комментарии к статьям” со “статьями”, чтобы можно было их добавлять и просматривать?
from rest_framework import serializers from .models import Article, Comment class ArticleSerializer(serializers.ModelSerializer): comments = CommentSerializer(many=True, required=True) class Meta: model = Article fields = ('id', 'title', 'link', 'created', 'upvotes', 'author', 'comments') class CommentSerializer(serializers.ModelSerializer): class Meta: model = Comment fields = ('article', 'name', 'content', 'created')
Офлайн