Reputation: 793
i am trying to create a relationship between my user model and my article model.
Each user can have many articles but each article belongs to one user.
When i go to my rest framework and create a user and an article they are not linked together. I think i am missing something in the relationship since when i enter my Article Details i am not entering anything related to the user.
from django.db import models
class User(models.Model):
firstname = models.CharField(max_length=255, null=True, blank=False)
lastname = models.CharField(max_length=255, null=True, blank=False)
email = models.EmailField(null=True, blank=False)
timestamp = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.email
class Article(models.Model):
user: models.ForeignKey(User, null=True, blank=False, on_delete=models.SET_NULL)
title = models.CharField(max_length=255, null=True, blank=False)
timestamp = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
from rest_framework import serializers
from .models import User, Article
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['id','firstname', 'lastname', 'email']
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = ['id', 'title']
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
class ArticleViewSet(viewsets.ModelViewSet):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
Upvotes: 0
Views: 133
Reputation: 793
i had 2 problems in my code:
As Matt Howell pointed out in the comments, in MyApp>models.py, i had a typo in my Article definition -- i need user =
not user :
in MyApp>serializer.py, i had to include user
in my fields
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = ['id', 'title', 'user']
Upvotes: 1