Python Django-多对一关系不起作用
我试图在我的用户模型和我的文章模型之间建立一种关系 每个用户可以有许多文章,但每个文章属于一个用户 当我转到我的rest框架并创建一个用户和一篇文章时,它们并没有链接在一起。我认为我在关系中遗漏了一些东西,因为当我输入我的文章详细信息时,我没有输入任何与用户相关的内容 MyApp>models.py MyApp>serializer.py MyApp>views.pyPython Django-多对一关系不起作用,python,django,Python,Django,我试图在我的用户模型和我的文章模型之间建立一种关系 每个用户可以有许多文章,但每个文章属于一个用户 当我转到我的rest框架并创建一个用户和一篇文章时,它们并没有链接在一起。我认为我在关系中遗漏了一些东西,因为当我输入我的文章详细信息时,我没有输入任何与用户相关的内容 MyApp>models.py MyApp>serializer.py MyApp>views.py 我的代码中有两个问题: 正如Matt Howell在评论中指出的,在MyApp>models.py中,我的文章定义有一个输入错误
我的代码中有两个问题:
user=
而不是user:
user
您使用什么代码创建用户和文章?链接通常在创建文章时完成。另外,您的文章定义似乎有一个输入错误——您需要的是
user=
,而不是user:
@MattHowell嗨,谢谢您回复我。我还是django的新手,您能再解释一下吗,我正在使用rest框架创建我的文章?我以为ModelViewSet可以为我创建一篇文章
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
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = ['id', 'title', 'user']