Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-多对一关系不起作用_Python_Django - Fatal编程技术网

Python Django-多对一关系不起作用

Python Django-多对一关系不起作用,python,django,Python,Django,我试图在我的用户模型和我的文章模型之间建立一种关系 每个用户可以有许多文章,但每个文章属于一个用户 当我转到我的rest框架并创建一个用户和一篇文章时,它们并没有链接在一起。我认为我在关系中遗漏了一些东西,因为当我输入我的文章详细信息时,我没有输入任何与用户相关的内容 MyApp>models.py MyApp>serializer.py MyApp>views.py 我的代码中有两个问题: 正如Matt Howell在评论中指出的,在MyApp>models.py中,我的文章定义有一个输入错误

我试图在我的用户模型和我的文章模型之间建立一种关系

每个用户可以有许多文章,但每个文章属于一个用户

当我转到我的rest框架并创建一个用户和一篇文章时,它们并没有链接在一起。我认为我在关系中遗漏了一些东西,因为当我输入我的文章详细信息时,我没有输入任何与用户相关的内容

MyApp>models.py MyApp>serializer.py MyApp>views.py
我的代码中有两个问题:

  • 正如Matt Howell在评论中指出的,在MyApp>models.py中,我的文章定义有一个输入错误——我需要
    user=
    而不是
    user:

  • 在MyApp>serializer.py中,我必须在字段中包含
    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']