1

私は、人々がどのようにコメントを書くのか、そして誰のために、そして誰が書いたのかをどのように保存するのかを理解しようとしています。UserProfile.Comments...という人のために書かれたコメントを見たいのですが。

誰でもそれについて私を助けることができますか?

MODELS.PY

class UserProfile(models.Model):
    comments =  models.ForeignKey("Comments", null=True, blank=True)


class Comments(models.Model):
    comment = models.CharField(max_length=500, null=False, blank=False)
    who_wrote = models.ForeignKey(User) 

VIEW.PY(ここで私は立ち往生)

def writecomment(request, username):
    if request.method == 'POST': 
        form = CommentForm(request.POST) 
        if form.is_valid():
            form.save(commit=False)
            form.user = request.user
            form.user_id = get_object_or_404(User, username=username).id
            #frm = form.save()

            usr = get_object_or_404(UserProfile, user = request.user)
            usr.Comments = form #append??
            usr.save()

   else:
        form = CommentForm(request.POST) 

    return render_to_response("writecomment.html", {"form": form}, context_instance=RequestContext(request))
4

1 に答える 1

1

この作業を簡単にするために、モデルを少し異なる方法で作成できると思います。考えるべきことがいくつかあります。

  1. 各ユーザーは複数のコメントを持つことができますか?それが可能性があることを示唆するというUserProfileフィールドがあります。commentsこれは、多対多のフィールドとしてより適切にモデル化される可能性があります。

  2. UserProfileユーザーにリンクする必要がありますか?

  3. Commentsfromユーザーとtoユーザーの2人のユーザーをサポートする必要があるようです。


class UserProfile(models.Model):
     user = models.OneToOneField(User) # each user can have exactly 1 profile
     comments = models.ManyToManyField(Comment) # each user can have mutilple comments


class Comment(models.Model):
    text = models.CharField(max_length=500, null=False, blank=False)
    to = # shoudl this be foreign key or many to many?
    # can a comment reference multiple users or just one user or no user?

上記の変更により、ユーザーまたはユーザーからのコメントの取得がはるかに簡単になります

于 2013-03-26T13:14:02.600 に答える