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 に答える