2013-03-26 50 views
1

我想弄清楚人們將如何寫評論,以及如何存儲誰寫和誰寫的。我想看看爲一個人寫的評論UserProfile.Comments ...誰和誰在Django模型

任何人都可以幫助我嗎?

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)) 

回答

1

我相信,你的模型可以創建有點不同,使這項工作更容易。只需要考慮一些事情。

  1. 每個用戶可以有多個評論嗎? UserProfile有一個名爲comments的字段,暗示它可能是。這可能更好地模仿爲多對多領域。

  2. 應該UserProfile鏈接到用戶?

  3. 好像Comments可能需要支持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? 

隨着上述變化,得到了評論給用戶或從用戶變得輕鬆了許多

+0

是,用戶可以有不同的人多條評論。 UserProfile已與具有OneToOne字段和信號的用戶鏈接。 「to」應該是ManyToMany 我正在以您提供的方式檢查代碼。 是的,評論可能需要支持2個用戶,一個來自用戶,另一個來自用戶。 – 2013-03-26 13:28:13