Python 如何将用户与django中的帖子关联,并根据登录的用户显示数据?
我在django中有以下代码: models.pyPython 如何将用户与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
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()
您将只获得该用户的配方。是的,给它一个外键。但是,在显示列表时,如何仅向用户显示其食谱?我需要在模型中插入任何过滤器吗?