0

我还没有找到关于这个主题的任何文档或教程,也没有在 IRC 频道上收到任何答案,所以这让我觉得我在寻找错误的东西。无论如何,经过几个小时的搜索后诉诸SO。我将尝试通过示例来描述我所追求的:

  1. 我想创建一个用户可以创建帐户的 Web 应用程序(这部分很清楚
  2. 登录后,用户可以存储他最喜欢的饭菜
  3. 当用户登录时,他会看到他最喜欢的饭菜列表,他可以对其进行编辑

我了解用户如何创建帐户并登录。但之后的一切都有些模糊。

用户登录后,假设他会看到一个他可以填写并保存的表格。应该如何设计数据库(模型)来处理这个问题?每个用户都会得到自己的桌子吗?如何从数据库中检索用户存储的数据(即喜欢的食物)?

这些是我在学习 django/编程时想要弄清楚的事情。正如我所说,我没有在我浏览过的任何书籍、文档或教程中找到它的描述。

如果您能指出正确的方向,我将不胜感激。我觉得我在这里遗漏了一些东西。

4

2 回答 2

2

基本的东西:

  1. 为模型中的用户创建外键
  2. 禁止表单中的用户字段
  3. 使用 commit=False 保存表单,将用户设置为经过身份验证的用户并保存模型。

其余的你可以从教程中得到相当直接的结果。

例如:

# At models.py
from django.contrib.auth.models import User


class FavoriteMeal(models.Model):
    user = models.ForeignKey(User)
    # other fields...

# At forms.py
class FavoriteMealForm(forms.ModelForm):
    class Meta:
        model = FavoriteMeal
        exclude = ('user', )

# At views.py
@login_required
def favorite_meals_view(request):
    favorite_meals = FavoriteMeal.objects.filter(user=request.user)
    ...
    if request.method == 'POST':
        form = FavoriteMealForm(request.POST)
        if form.is_valid():
            favorite_meal = form.save(commit=False)
            favorite_meal.user = request.user
            favorite_meal.save()
    ...
于 2012-11-01T22:38:57.920 回答
0

您正在寻找的是 django 的非常基本的部分。我建议你通过教程。这将使您对如何使用模型关系来存储数据有相当多的了解。

https://docs.djangoproject.com/en/1.4/intro/tutorial01/

于 2012-11-01T22:33:45.427 回答