Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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,我在django中有以下代码: models.py from django.db import models from django.utils.encoding import python_2_unicode_compatible from django.utils import timezone class Recipe(models.Model): title = models.CharField(max_length=100) ingredients = models

我在django中有以下代码:

models.py

from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from django.utils import timezone


class Recipe(models.Model):
    title = models.CharField(max_length=100)
    ingredients = models.TextField(max_length=200,help_text="Put the ingredients required$")
    instructions = models.TextField(max_length=500)



    def __unicode__(self):
            return self.title
forms.py

from django.contrib import messages
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.shortcuts import render
from .forms import RecipeForm

def add(request):
    if request.method == 'POST':
            form = RecipeForm(request.POST)
            if form.is_valid():
                form.save()
                return HttpResponseRedirect(reverse('app_name:url'))
            else:
                messages.error(request, "Error")

    return render(request, 'page.html', {'form': RecipeForm()})

是否有人知道如何将用户id与之关联,以便在数据库中保存时,还可以保存制作此配方的用户,并且当用户登录时,他只能查看自己的配方,而不能查看其他用户保存的配方。有什么建议吗?

您应该在
配方
模型中添加一个指向内置
用户
模型的
外键
字段:

author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='recipes')
此字段将包含创建配方的用户的
id

编辑

如果你有一个
用户
对象,你可以像这样访问它的
配方

user.recipes.all()

您将只获得该用户的配方。

是的,给它一个外键。但是,在显示列表时,如何仅向用户显示其食谱?我需要在模型中插入任何过滤器吗?